写在前面:索引对查询的速度有着相当主要的影响,懂得索引也是进行数据库性状调优的出发点。斟酌以下情形,假定数据库中一个表有10^6条记载,DBMS的页面大小为4K,并存储100条记载。如果没有索引,查询将对全部表进行扫描,最坏的情形下,如果所有数据页都不在内存,须要读取10^4个页面,如果这10^4个页面在磁盘上随机散布,须要进行10^4次I/O,假定磁盘每次I/O时光为10ms(疏忽数据传输时光),则总共须要100s(但实际上要好很多很多)。如果对之树立B-Tree索引,则只须要进行log100(10^6)=3次页面读取,最坏情形下耗时30ms。这就是索引带来的后果,很多时候,当你的应用程序进行SQL查询速度很慢时,应当想一想是不是可以建索引。进入正题:写在前面:索引对查询的速度有着相当主要的影响,懂得索引也是进行数据库性状调优的出发点。斟酌以下情形