查询速度慢的原因很多,常见有以下几种,包括非软件因素:
- 没有索引或者没有用到索引
- I/O吞吐量小,形成了瓶颈效应
- 内存不足
- 网络速度慢
- 查询的数据量过大
- 返回了不必要的行和列
常见优化条件查询的方法:
- 为数据量大且经常进行查询的表建立索引
- 减少表间关联
- 避免全表查询
- 避免使用in关键字,Between在某些时候比IN 速度更快,Between能够更快地根据索引找到范围。 select * from chineseresume where title in ('男','女') Select * from chineseresume where between '男' and '女' 是一样的。由于in会在比较多次,所以有时会慢些
- 在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。
- 不需要返回的字段不要加入查询
- 返回结果数据量大时,采用多次查询,每次尽量返回少量数据