优化策略
优化的方向
查询为什么会慢?除去网络延迟,CPU计算等因素,时间主要消耗在查询执行阶段,比如说I/O阻塞,锁等待导致执行事件较长。而事实上,查询速度慢,一般都是查询命令包含了一些不必要的操作,不必要的数据,或者数据量太大、查询范围太广。主要减少和消除以上问题。
1.减少select *的操作,在查询时常用limit限制返回的数据量。
2.经常重复查询的数据,存入缓存或者建立哈希索引/或者mysql建立自适应哈希。
3.复杂查询语句,使用多条简单查询(并不是所有的多条查询都比复杂查询效果好)。
mysql的断开和连接都死轻量级的,因此单条查询速度很快,在一些情况下使用多条查询替代复杂查询效果会更好。事实上mysql服务器查询速度非常快,而返回给客户端数据时速度很慢,因此单条查询小数据能加快查询速度。
4.关联查询拆解成多条查询
因为每次单条查询的数据放在缓存中,被之后的查询直接使用,提高查询速度。
因为单条查询减少数据上锁的范围,减少锁竞争,提高查询速度。