数据库的瓶颈经常出现在查询 语句中,当出现这样的问题时,我们一般的步骤是查看是否运用了正确的 索引,
这个可以通过explain sql statement来查看,找到对应的字段,合理的索引将会增加你呃数据的访问速度,但
任何事情都有一个度,如果索引太多,会在插入时要维护更多的索引,这也将是一个大的开销,但具体怎样才
合适呢,欢迎大神来讨论,这个我不再行,不过一般一个表中有主键活唯一键,再弄几个的话应该不是问题。
1.1、mysql是如何执行where字句的
这些语句通常很快:
SELECT COUNT(*) FROM tbl_name;
SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name;
SELECT MAX(key_part2) FROM tbl_name
WHERE key_part1=constant;
SELECT ... FROM tbl_name
ORDER BY key_part1,key_part2,... LIMIT 10;
SELECT ... FROM tbl_name
ORDER BY key_part1 DESC, key_part2 DESC, ... LIMIT 10;
但前提是这些访问的字段部分都有索引,因为如min(),max(),order by 这些语句会用到排序的,但如果之前已经
建立好了索引,那么读的时候就通过二分的方法来 遍历Btree,这速度很快,如果没有索引,这个只能全表扫描,
速度会很慢的,对于第一个语句,在MyISAM和MEMORY存储引擎的表,可以直接读取这