Mysql建立
索引优化:
sql优化:
为了解决下面的索引失效问题
序列索引优化:
解决order by的关键在于提前在索引中就给好排序
解决limit优化:
利用id的子查询解决了回表查询然后提升了效能。
关于count()的优化:
`关于COUNT()的效率问题:
COUNT()是用来统计记录数量的函数。不同写法的效率可能不一样,通常情况下,COUNT(*)效率最高,因为它是直接统计表中的记录数,而不需要检查字段是否为空。
不同写法的COUNT()语句和作用:
- COUNT(*)
SELECT COUNT(*) FROM tb_sku;
作用:统计tb_sku表中的总记录数,包括所有行,不管字段值是否为空。
2. COUNT(主键 id)
SELECT COUNT(id) FROM tb_sku;
作用:统计tb_sku表中id字段非空的记录数。因为id通常是主键,主键字段不允许为空,所以这个结果和COUNT(*)是一样的。
3. COUNT(1)
SELECT COUNT(1) FROM tb_sku;
作用:统计tb_sku表中的总记录数。COUNT(1)的意思是每行都算作1,然后加起来,结果和COUNT(*)一样。
4. COUNT(字段)
SELECT COUNT(字段) FROM tb_sku;
作用:统计tb_sku表中字段非空的记录数。如果字段有空值,这些空值不会被计入总数。
效率排序:
按照效率排序,通常是这样的:
COUNT() ≈ COUNT(1) > COUNT(主键 id) > COUNT(字段)
COUNT()和COUNT(1)效率最高,因为它们直接统计行数,不需要检查字段是否为空。
COUNT(主键 id)效率也高,因为主键字段不会为空。
COUNT(字段)效率可能稍低,因为它需要检查字段是否为空。
总结:
如果只是想统计表的总行数,最好用COUNT(*)或COUNT(1),因为它们效率最高。`