MySQL CRUD优化
常见的优化措施:
限定数据的范围:(返回部分而非全部)务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内。;
**读写分离:**经典的数据库拆分方案,主库负责写,从库负责读;
**采取缓存:**使用MySQL的缓存,另外对重量级、更新少的数据可以考虑使用应用级别的缓存;
垂直分区和水平分区:
垂直拆分的优点: 可以使得行数据变小,在查询时减少读取的Block数,减少I/O次数。此外,垂直分区可以简化表的结构,易于维护。
垂直拆分的缺点: 主键会出现冗余,需要管理冗余列,并会引起Join操作,可以通过在应用层进行Join来解决。此外,垂直分区会让事务变得更加复杂;
水平拆分优点:能够 支持非常大的数据量存储,应用端改造也少,
水平拆分缺点: 分片事务难以解决 ,跨界点Join性能较差,逻辑复杂。《Java工程师修炼之道》的作者推荐 尽量不要对数据进行分片,因为拆分会带来逻辑、部署、运维的各种复杂度 ,一般的数据表在优化得当的情况下支撑千万以下的数据量是没有太大问题的。如果实在要分片,尽量选择客户端分片架构,这样可以减少一次和中间件的网络I/O。

浙公网安备 33010602011771号