mysql优化

  1.  索引

  2.  反范式设计

  3.  将外键放在业务层约束

  4.  对于会修改的数据,且该后置数据用作其他表的外键。最好不要使用自增主键。否则在修改数据时采用先删后插的模式会很难处理后置数据的外键

  5.  横向分表

  a.  冷热分离

  •  热表(按时间或者其他 key) 保存

  •  冷表(类似历史数据,如果冷表数据太大,也可以结合时间或者业务进行再分表)

  a.  业务分表

  •  按数据状态分表(类似出院、在院或者事前、事中、事后)

  a.  时间分表

  •  按照创建时间或者其他非空的时间字段分表

  5.  纵向分表

  a.  将固定不变的字段放在一个表里,另外经常变动的字段放在另一个表里(类似横向分表中的冷热分表)

  6.  分区

      key 必须为主键

  7.  buff_pool 增大

————————————————

关系型数据库优化

1、存储引擎,MyISAM无事务,性能高,InnoDB,支持事务性能低些。

代价:需要重构

2、隔离级别:RC级别,任然有幻读可能

3、连接数优化:

4、设置缓冲区大小:索引缓冲区、表的缓冲区、查询的缓冲区、排序的缓冲区

5、explain分析sql、optimizer trace

6、覆盖索引【查询列都在索引列中,避免回表{二级索引查询后,需要再通过主键(叶子节点)查询到行}】--左模糊会导致覆盖索引失效、索引下推【必须where字段在索引列中、必须不是覆盖索引】、避免select *、

7、优化顺序:索引、缓存、异步化、分区,分库分表

8、分表:表太大,索引较大,优化索引。分库:并发高,连接数不够,优化并发情况

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容