测试中发现某接口响应时间超过1S,观察到数据库服务器 CPU 使用率飙到 80% 以上。
Profile 响应时间主要消耗在 SQL 语句的执行上,定位原因是检索字段没有加索引。
数据库索引可以帮助我们大大的加快数据的检索速度。当符合以下情况时建议增加索引:
• 数据库表比较大时;
• 需要全表扫描查询时;
• 取出的数据量比表数据量少很多时;
索引会增加额外的存储空间,并且在执行 Insert/Update/Delete 时,会使得索引重新计算。所以,不要滥用索引。不正确的使用会导致索引失效,例
如:
• WHERE 子句中的“!=” 会导致索引无效;
• 组合索引没有使用前缀列时,会导致索引无效;
• 查询条件中使用函数会导致索引无效;
• 查询条件中使用 like 操作符,第一个字符是通配符“%”时,会导致索引无效。