Mysql大表优化

首先切分是最好不能做首选的方案。
在不切分的情况下:
1.优化索引
2.加缓存 memcached,redis
3.以上都做了之后,还是慢的话,做M/M复制或M/S复制,读写分离。用第三方工具例如360的atlas
4.使用mqsql自带的分区表,对应用来说是透明且代码不需要更改,sql语句得针对分区进行优化,带上查询分区条件的列,否则会扫描全表。
5.垂直拆分。大系统变小系统,分布式
6.水平拆分。成本最好,技术难度最大,选择合理的sharding key。

索引和sql优化:不只是根据sql去建索引,而是sql也要相应的优化,根据不同的引擎,表数据的分布情况,索引,数据库锁策略,最终可能查询结果相差很大。优化要从整体考虑,有时可能优化一条却导致其他,查询查询变低了。所以找到那个平衡点很重要。

你可能感兴趣的:(Mysql大表优化)