的數據庫故障,影響線上業務。經過排查后,確定原因是SQL在執行時,MySQL優化器選擇了錯誤的索引(不應該 ...
前端時間跟一個DB相關的項目,alanc反饋有一個查詢,使用索引比不使用索引慢很多倍,有點毀三觀。所以跟進了一下,用explain,看了看 個查詢不同的結果。 不用索引的查詢的時候結果如下,實際查詢中速度比較塊。 mysql gt explain select from rosterusers limit , id select type table type possible keys key ...
2013-05-18 22:33 3 2049 推薦指數:
的數據庫故障,影響線上業務。經過排查后,確定原因是SQL在執行時,MySQL優化器選擇了錯誤的索引(不應該 ...
背景 最近一個后台功能列表,業務人員反饋查詢和導出速度非常慢。 通過定位發現列表查詢和數據導出都是使用的同樣的一個連表查詢SQL。 這個功能剛上線不久,起初查詢和導出速度都是蠻快的,把這個SQL放到測試環境也是挺快的。 對比了一下測試環境和生產環境相關表結構都是一樣的,之后我們把目光放在 ...
靈魂3連問: 什么是前綴索引? 前綴索引也叫局部索引,比如給身份證的前 10 位添加索引,類似這種給某列部分信息添加索引的方式叫做前綴索引。 為什么要用前綴索引? 前綴索引能有效減小索引文件的大小,讓每個索引頁可以保存更多的索引值,從而提高了索引查詢的速度。但前綴索引也有它的缺點,不能在 ...
結論:添加索引時,如果有對該表的慢查詢,會導致索引添加延時等待 添加索引語句:alter table tb_name add index idx_xx(col_name); 執行添加索引的SQL: 通過show processlist; 發現有鎖 ...
mysql 查詢所有碎片語句 SHOW TABLE STATUS LIKE 'logs' ---------logs是帶有索引的表名稱 如果Data_free大於0 表示有索引碎片產生 可以使用如下語句清理碎片 OPTIMIZE TABLE `logs` -------logs ...
背景知識:MySQL有三種鎖的級別:頁級、表級、行級。 MyISAM和MEMORY存儲引擎采用的是表級鎖(table-level locking);BDB存儲引擎采用的是頁面鎖(page-level locking),但也支持表級鎖;InnoDB存儲引擎既支持行級鎖(row-level ...
1. 開啟慢查詢日志方式: 可以更改數據庫配置文件 ,例如在ubuntu下配置文件位置 /etc/mysql/mysql.conf.d/mysqld.cnf 增加這三項 #記錄慢查詢日志slow_query_log = ONslow_query_log_file = /var/log ...
經常有同學問我,我的一個SQL語句使用了索引,為什么還是會進入到慢查詢之中呢?今天我們就從這個問題開始來聊一聊索引和慢查詢。 另外插入一個題外話,個人認為團隊要合理的使用ORM,可以參考我的另外一篇<ORM的權衡和抉擇>。合理利用的是ORM在面向對象和寫操作方面的優勢,避免 ...