Mysql百萬級分頁查詢的優化 (組合索引的使用)

當一個mysql表數據達到百萬,分頁查詢的功能就會十分緩慢

使用組合索引解決問題

根據實際情況業務和表結構來創建對應的組合索引的列
消息表:存儲大量的關於各個用戶的消息 每次查詢消息記錄涉及的數據非常大
所以根據我的分頁查詢業務來創建的索引 效率提升很大

  KEY `message_use_limit` (`msg_to`,`chat_type`,`msg_from`,`timestamp`,`id`) USING BTREE,
  KEY `message_use_limit2` (`msg_to`,`chat_type`,`timestamp`,`id`) USING BTREE

創建索引的語句

ALTER TABLE table_name ADD INDEX index_name(msg_to,chat_type,msg_from,timestamp,id);

查詢

select * from table_name where msg_to = 1 and chat_type = 1 and msg_from = 2 and timestamp =123456789 limit 100000 50;

通過在where條件中正確的使用組合索引 就可以觸發組合索引 提高效率

根據創建的索引列來作爲查詢的條件 (遵循最左原則 where必須從最左邊的索引開始使用纔有效果)

關於組合索引的具體介紹:
組合索引介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章