我想知道的是,如果SQL语句中没有WHERE条件的话,数据库引擎会顺序去读真正的数据文件(比较快,没有硬盘seek),还是先读Index文件,然后根据文件指针定位到数据文件,再读(这就很慢了,因为定位过程要seek磁盘,会慢死的)。请问有没有哪位牛人知道?

解决方案 »

  1.   

    如果命中的数据超过整表的一半,mysql就不会使用索引.
      

  2.   

    那请问mysql怎么知道命中的数据记录超过整表的一半呢?
    另外,什么是“命中”呢?是说mysql会试着去读这个记录,就算一次命中?还是这个记录满足我的select条件才算命中呢?Thanks a lot.
      

  3.   

    是的。我昨天做了试验,发现“SELECT * FROM table”会让内存撑暴的。如果不用分页的话,那么有什么办法可以让内存消耗小一点呢?