sql优化
mysql重要参数max_connections最大连接数
意思是说当前打开数据库连接池的客户端数量的最大限度
curd操作都会触发mysql连接池,当max时会出现排队情况,所以sql必须要执行高效
从而保证不会出现max状况
另外特殊sql会出现锁表,所行的现象,如果此类特殊sql时间过长导致某数据表不可用,会是极大损失,避免这种现象的最好办法是把特殊sql写成高效sql,拆分by语句,避免sql执行时间过长,从而减少数据表开销
我这个sql写了38行,1965字节,8表联查, 你过来看看我这个sql多牛逼, 好吧,这个sql只能看看
依次代表:本次查询ID(多表查会出现多个)
查询模式:简单 表名 查询原则:all扫所有 可能用到的索引 实际用到的索引 用到的索引的字段长度 查询行数
type最差为all(data_all)《index(index_all)(扫所有所以i你节点)《range(范围)《ref(通常为普通索引)《eq_ref《const。system,null(count(*)myisam出现,因为myisam维护了一个数据总条数)
去掉不走索引, 排序filesort, 不去掉走索引,但是mysql貌似更倾向于第一种sql
select id,name from goods where cat_id in (select id from cat where parent_id=6);
查询6号分类下所有子分类的所有商品
但是sql执行顺序是
select id,name,cat_id from goods
select parent_id form cat where id = $1sql['cat_id'] and ;parent_id=6
完美替代第一条sql