有更合适的索引不走,怎么办?
MySQL在选取索引时,会参考索引的基数,基数是MySQL估算的,反映这个字段有多少种取值,估算的策略为选取几个页算出取值的平均值,再乘以页数,即为基数
查看索引基数
show index from table_name
使用force index可以强制使用索引
重新统计索引信息,会重新计算索引的基数
analyze table
count 语句慢,如何解决?
count(非索引字段):无法使用覆盖索引,最慢
count(索引字段):可以使用覆盖索引但依然要取出数据判空
count(1):不需要取出数据,但需要判断1是否为null
count(*):经过专门优化,不需要判空,理论最快
获取不到数据库连接
查看超时释放
show variables where variable_name like '%timeout'
查看链接数
show processlist
show full processlist
查看最大连接数
show variables like '%max_connections%'
修改最大连接数
set GLOBAL max_connections = 200;