索引

索引一般设置不要超过6个,且每个索引一般不要超过3个字段。
索引是直接以B树或B+树的形式存储在拼盘中。
虽然索引多了有助于查询,但数据每次在增删改时,都需要修改索引,所以需要耗费时间,如果索引越多耗时越长,所以不要设太多索引。
如果有碰到大量重复的字段,如男/女就不要设成索引了。
如果可以,尽量选择数字类型当索引,因为数字只需要比较值,而字符串则需要逐字比较。
设索引主要针对where和gourp by字段
索引主要有三种,唯一索引、主键索引、复合/联合/组合索引(叫法不同)。
主键索引必然是唯一索引。
组合索引就是指多个字段组成的索引,当创建一个索引包含A,B,C时,其实就等同于创建了索引A、A+B、A+B+C。
至于使用的顺序无所谓,mysql会自动优化调整成索引的顺序。

sql优化

sql优化主要就是保证使用索引来提高查询效率。

不要写select *

不这样写的原因是,*会查询每个字段,如果只是把需要的字段查出来可以减少数据库io。
因为数据库是把数据写进硬盘中,使用时通过io读取和修改。

不要使用or

使用or就不会触发索引,可以使用union all连接两个查询结果

不要使用in和not in

模糊查询不要左模糊

因为是从左到右逐字匹配的,如果左模糊范围就扩大了很多,效率就下降了。

不要在直接操作查询字段

如 where age/2=…,原原本本的使用,所有的操作直接写在参数

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐