一些文章资讯汇总(数据库篇)

各类资讯汇总

  • 写在前面(声明)
  • 数据库
    • 关系型数据库
      • MySQL
        • SQL
        • 索引
        • 分库分表
        • 主从架构/高可用
        • 一些案例
        • 一些笔记
    • 非关系型数据库
      • Redis相关
        • Redis
        • Redisson

写在前面(声明)

声明:这里的各个内容基本都是平时看到的一些觉得有用的文章资讯的链接汇总,里面的内容都不是我的创作!
做个快乐的搬运工!

数据库

  • 数据仓库的前世今生
  • 网易严选数据湖建设实践
  • 微服务开发中的数据构架设计
  • 4次版本迭代,我们将项目性能提升了360倍!
  • 关系型数据库

    MySQL

  • MySQL数据库相关流程图原理图
  • 10张图告诉你,MySQL 是如何查找数据的?
  • 8张图,5大组件!了解MySQL查询语句执行过程。
  • 顺丰快递:请签收MySQL灵魂十连
  • Mysql的逻辑架构
    Msql的存储引擎

  • MySQL 四种隔离级别
  • 精讲 MySQL 事务日志:redo log 和 undo log
  • MySQL 事务详解

  • 不要在 MySQL 中使用“utf8”,请使用“utf8mb4”
  • 为什么MySQL不推荐使用 UUID 或者雪花id作为主键?
  • MySQL面试高频
  • 鸟瞰 MySQL,唬住面试官!
  • MySQL 5.7 vs 8.0,哪个性能更牛?
  • 简单、易用的 MySQL 官方压测工具,建议收藏!

    SQL

  • 必须了解的十个高级 SQL 概念
  • 一文终结 SQL 子查询优化
  • 如何解决MySQL order by limit语句的分页数据重复问题?
  • Insert into select语句引发的生产事故!
  • 在工作中常用到的SQL
  • 8 种最坑的 SQL 错误用法,第一个最坑
  • mysql中使用if,case的条件判断的sql语句
  • MySQL中between和大于小于的比较
  • 为什么MySQL不建议使用Delete删除数据?
  • 一条 SQL 语句执行得很慢的原因有哪些?
  • 数据量很大,分页查询很慢,四招立马搞定!
  • SQL:我为什么慢你心里没数吗?
    mysql 查询优化
    mysql 执行计划

    52 条 SQL 语句性能优化策略

    索引

  • 为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?
  • 史上最牛分析MySQL索引机制的实现!不接受反驳!
  • Mysql使用索引的正确方法及索引原理详解
  • MySQL 索引的分类、何时使用、何时不使用、何时失效?
  • mysql 的索引有哪几种?

    分库分表

    出现这 4 种情况,才是考虑分库分表的时候!

  • 我们为什么要分库分表?
  • 关于数据库的水平切分和垂直切分的一些概念
  • 分库分表?如何做到永不迁移数据和避免热点?
  • 一次分表踩坑实践的探讨
  • 盘点分库分表中,你一定要避开的那些坑!
  • 256变4096:分库分表扩容如何实现平滑数据迁移?
  • 分库分表之后,id 主键如何处理?

    主从架构/高可用

  • 高性能Mysql主从架构的复制原理及配置详解
  • Mysql主从复制原理

  • mysql主从简单配置
  • MySQL 中主库跑太快,从库追不上怎么整?
  • Mysql高可用部署架构

    一些案例

  • 日均7亿交易量,如何设计高可用的MySQL架构?
  • 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案
  • MySQL大表优化方案,单表优化、读写分离、缓存、分区表……都在这里了
  • MySQL 调优/优化的 101 个建议!
  • 一次业务逻辑优化,竟然解决了MySQL CPU消耗800%的性能问题!
  • 高并发场景下的数据库事务调优
    头疼!百万级 MySQL 的数据量,如何快速完成数据迁移?

    一些笔记

    记录一次因为数据记录过多导致的查询缓慢

    背景: 在一次测试环境中发现,某表记录达到百万级别就非常缓慢,当到达200w级别需要几十秒,500w以上时应用查询都超时了(实测查询结果需要200秒左右出结果);
    因为基本上大家公认的mysql都可以支持到千万级别的数据量级,所以这个结果明显差距巨大;
    后根据在网上查找资料等,得知,这种数据量级,都是硬件足够的前提;
    在这个事例中,Mysql的innodb_buffer_pool_size只设置了4G,而当表数据量级上去后,这个内存容量已经不足以存储下所有的索引了;所以查询会非常的慢;
    根据这个,当增大innodb_buffer_pool_size后,确实可以明显提升查询速度;

    查询buff和cache相关sql:

    show global variables like '%buffer%';
    show global variables like '%cache%'; 
    show status like '%innodb_buffer_pool_%';
    

    查询表容量相关sql:

    SELECT engine,
      count(*) as TABLES,
      concat(round(sum(table_rows)/1000000,2),'M') rows,
      concat(round(sum(data_length)/(1024*1024*1024),2),'G') DATA,
      concat(round(sum(index_length)/(1024*1024*1024),2),'G') idx,
      concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') total_size,
      round(sum(index_length)/sum(data_length),2) idxfrac
    FROM information_schema.TABLES
    WHERE table_schema not in ('mysql', 'performance_schema', 'information_schema')
    GROUP BY engine
    ORDER BY sum(data_length+index_length) DESC LIMIT 10;
    

    查询某库下各表相关情况信息:

    SELECT
    	TABLE_NAME,
    	DATA_LENGTH,
    	INDEX_LENGTH,
    	( DATA_LENGTH + INDEX_LENGTH ) AS length,
    	TABLE_ROWS,
    	concat( round( ( DATA_LENGTH + INDEX_LENGTH ) / 1024 / 1024, 3 ), 'MB' ) AS total_size 
    FROM
    	information_schema.TABLES 
    WHERE
    	TABLE_SCHEMA = '数据库名' 
    ORDER BY
    	length DESC;
    

    查看某表详细状况:

    show table status like 'xxx表名';
    

    相关参考:
    数据库性能优化—MySQL单表最大记录数超过多少时性能会严重下降
    mysql性能调优——缓存命中率innodb_buffer_pool_size
    INNODB_BUFFER_POOL_SIZE:设置最佳内存值
    mysql中内存的使用与分配

    非关系型数据库

    Redis相关

    Redis

  • 硬核万字总结:看完这 20 道 Redis 面试题,女朋友都面上阿里了
  • Redis最佳实践:7个维度+43条使用规范,带你彻底玩转Redis | 附实践清单
  • Redis 的 4 大法宝,2018 必学中间件!
  • 除了用作缓存数据,Redis还可以做这些
  • 分布式之redis复习精讲
  • 扫盲,为什么分布式一定要有Redis?
  • Redis开发设计规范及案例分析
  • Redis 事务
  • 挑战Kafka!Redis5.0重量级特性Stream尝鲜
  • 深入学习 Redis(3):主从复制
  • Redis分布式主从复制详解
  • Redis如何做持久化与恢复
  • 突然挂了!Redis 缓存都在内存中,这下完了!
  • 吃透了这些Redis知识点,面试官一定觉得你很NB
  • 玩转Redis:8 种数据淘汰策略及近似LRU、LFU原理!
  • —————————

  • 如何搭建高可用Redis服务
  • Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
  • Windows 环境搭建Redis集群
  • Redis 集群部署及踩过的坑
  • Docker 安装 Redis
  • —————————

  • Redis相关的几个问题
  • Redis缓存雪崩、击穿、双写一致问题
  • 缓存穿透,雪崩,击穿以及解决方案分析

  • Redis ,真的不完美
  • Redis企业实战的几个坑,你思考了吗?
  • Redis上踩过的一些坑-美团
  • 同事把 Redis用成这鬼样子,真坑!
  • 熬了一个通宵,终于把Reids的7千万个Key删完了,今天脑子都嗡嗡响!
  • 大数据基础-求锤得锤,你要的一致性hash来了(下)
  • Redis遍历所有key的两个命令 -- KEYS 和 SCAN
  • MySQL 与 Redis 缓存的同步方案
  • 如何保证缓存与数据库的双写一致性?
  • 我是如何用 redis 做实时订阅推送的
  • 基于Redis和Lua的分布式限流
  • 给你一个亿的keys,Redis如何统计?
  • 4次优化,我把 Redis 性能 “压榨” 到极致!
  • 好家伙,你管这破玩意叫哨兵?

    为什么删除数据后,Redis内存占用依然很高?

  • 使用Redis实现分布式锁及其优化
  • 细说Redis分布式锁

    Redisson

  • Redisson实现分布式锁(1)---原理
  • Redisson实现分布式锁(2)—RedissonLock
  • Redisson实现分布式锁(3)—项目落地实现
  • 自己写分布式锁-基于redission
  • Redisson实现Redis分布式锁的N种姿势
  • 利用Redisson实现分布式锁及其底层原理解析
  • 一文掌握 Redisson 分布式锁原理(值得收藏)
  • Redisson集群模式缺陷怎么解决?

你可能感兴趣的:(数据库,数据存储,big,data,mysql,数据库)