本地建一張表persons,使用指令碼插入了1000萬條資料
下面比較幾種查詢方法的耗時(查詢9000000到9000005這中間5條資料)
查詢結果:
1:
SELECT * FROM test.persons limit 9000000,5;
2:
SELECT * FROM test.persons where Id_P between 9000000 and 9000005;
可見幾乎不消耗時間
3:
SELECT * FROM test.persons where Id_P in(9000000,9000001,9000002,9000003,9000004,9000005);
同樣不消耗時間
結論:
1:在資料較少的時候使用limit查詢看不出耗時,如果資料量過大,千萬不能再使用limit,
2:一定要通過指定主鍵索引去查詢,這也意味著:建表的時候務必新增int型別的自增主鍵
3:伺服器和客戶端的資料交換務必帶上資料索引,在客戶端重新請求資料的時候,伺服器通過該索引主鍵去查詢資料比通過其他欄位明顯要快(索引通過折半查詢,再大的資料,查詢也很快)。