答:可以先在查询分析器中查看执行语句的时间,分析语句是否用到了索引,索引是否生效
(1)尽量避免select*,需要哪些字段就查询哪些字段
(2)一些公用的数据可以先拿到内存里,后面要用直接拿,而不是每次用到的时候重新去数据库取,主要是减少数据库交互,提供性能
4、说说索引(聚集索引、非聚集索引,联合索引、最左匹配原则、非聚集索引要回表查询)
答:索引分为聚集索引和非聚集索引,用非聚集索引查询一般需要再次回表查询,因为非聚集索引存储的是主键ID,聚集索引查询就好似书的目录,用索引可以快速定位某一块区域数据,如果不用索引就需要全表扫描;还有多个字段组成联合索引,一般要符合最左匹配原则;
in or 关键字就不走索引,like模糊匹配,前通配不走索引,后通配走索引
5、如果用非聚集索引怎样可以不用回表呢(select id from a where name="111")
答:如果只查询ID,用非聚集索引就不用回表,因为非聚集索引上就存的是ID
6、为什么使用索引后查询效率高呢
答:这个就涉及到索引和数据的结构了,类比书籍的目录页,索引通过B+树的结构存放数据,横向数据越多,纵向的高低越低,和磁盘的交互就越少,查询得速度就越快
作者:敖丙
链接:https://juejin.cn/post/6981608167041925134
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。