mysql 读写高并发大数据表优化

时间:2023-01-09 14:26:05
1.更新频繁尽量使用innode引擎,支持行级锁,降低锁粒度,提高并发量。
2.考虑使用mysql 主从做读写分离,可以利用主库更新,从库进行查询。分担数据库压力,提高并发。
3.考虑使用reids nosql类内存数据库进行读写分离。查询通过先redis查询,无结果再查询mysql,同时将mysql数据库查询存入redis。
4.利用mysql表分区(1-1024),减小表粒度,块式管理数据。可以提高块式查找数据。
5.利用mysql独立表空间,自动回收删除后的表空间(独立表空间不会自动回收、会持续增长),同时有效减小数据库存储文件,提高存储性能。

6.合理设计数据表索引,尽量利用主键更新,表更新频繁的话也会导致索引更新频繁,索引过多增加了开销,添加适当主键。

7.选择合适的索引,B+数索引是记录索引字段,可以通过查询索引可能达到数据库查询的效果(查询字段刚好是索引字段),如果字段较小而且不多的话可以考虑,可以部分匹配(组合索引)。而hash索引是对整条记录进行hash,查询必须匹配所有索引字段,但是索引存储数据较小。

8.合理的设计数据库的查询cache,减小数据库查询解析,提高查询效率和性能。

9.对大表可以进行分表和分库处理。一般采用对表主键hash值处理分成几个hash段,对每个hash段的数据存储在一个表中。每次存取都通过hash值觉得存储对应的表。