1. 程式人生 > >mysql在索引上查詢非索引型別的值導致的慢查詢

mysql在索引上查詢非索引型別的值導致的慢查詢

發生問題的sql如下:

SELECT column_name,comment,type_name,integer_idx FROM tmp_alipay_columns
WHERE sd_id=(SELECT CAST(cd_id as SIGNED) FROM tmp_alipay_sds WHERE sd_id=333 AND cd_id IS NOT null AND cd_id<>'' LIMIT 1)

tmp_alipay_sds的sd_id列為varchar型別的索引

當傳入引數333為int時,由於型別不同

mysql會隱式轉換,將sd_id和傳入的值轉為浮點數(‘1a’,'1‘都會轉為1,)

此時會發現無法使用索引,所以走了全表掃描

tmp_alipay_sds行數為600W

跑這個sql的任務是一個大任務

直接導致資料庫伺服器卡死 

問題還是被老闆發現的 大哭

下次每有新的sql重構或者涉及大表查詢,一定要先explain

相關推薦

mysql索引查詢索引型別導致查詢

發生問題的sql如下: SELECT column_name,comment,type_name,integer_idx FROM tmp_alipay_columns WHERE sd_id=(SELECT CAST(cd_id as SIGNED) FROM tmp_a

MYSQL查詢通過date型別的欄位查詢一段時間記錄

select * from wap_content where week(created_at) = week(now)   如果你要嚴格要求是某一年的,那可以這樣   查詢一天:   select * from table where to_d

MySQL 8.0 欄位資料型別不對導致查詢錯誤

背景: 在生產環境命名匯入了相同條數的記錄,但是開發人員查詢出來的資料行數不一樣。 分析: 後來經過比對和執行計劃分析是因為where條件後的表示時間欄位型別不一致導致的。 模擬分析: mysql> create table ta(id int not null au

MySQL Execution Plan--IN子查詢包含超多引發的查詢異常1

pos cos table HERE lock code 5.1 pic key ======================================================================= SQL語句: SELECT wave_n

MySQL錯誤日誌、二進制日誌、查詢日誌、事務日誌

文件信息 comm nes 文件中 二進制日誌 expr mysq 文本 分別是 錯誤日誌:Error log 默認情況下錯誤日誌大概記錄以下幾個方面的信息: 1、服務器啟動和關閉過程中的信息(未必是錯誤信息,例如,mysql如何啟動INNODB的表空間文件的、如何初始化

觸發器導致查詢

準備 但是 ssi 導致 情況 tro 通過 執行計劃 如果 觸發器導致慢查詢情況說明:慢日誌每天幾乎同一時刻都會有一條刪除的慢查詢,而且語句一樣,除了日期。然後發現表上只有一個主鍵,沒有其它索引,看執行計劃是全表掃描,但count一下總共也就900多行,執行3秒鐘,不能忍

各資料庫分頁查詢(DAO層框架所支援查詢)

oracle資料庫: SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM emp t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd'

mysql優化專題」單表查詢優化的一些小總結,索引設計(3)

flush src innodb atp show 優化 ase 驗證 where子句 單表查詢優化:(關於索引,後面再開單章講解) (0)可以先使用 EXPLAIN 關鍵字可以讓你知道MySQL是如何處理你的SQL語句的。這可以幫我們分析是查詢語句或是表結構的性能瓶頸。

3.MySQL優化---單表查詢優化的一些小總結(索引設計)

sql優化 所有 結果集 單表 搜索 結果 查詢語句 cnblogs sel 整理自互聯網.摘要: 接下來這篇是查詢優化。其實,大家都知道,查詢部分是遠遠大於增刪改的,所以查詢優化會花更多篇幅去講解。本篇會先講單表查詢優化(非索引設計)。然後講多表查詢優化。索引優化設計以及

MySQL優化系列(一)--查詢優化(1)(索引設計)

一、明確搜尋優化的整體思路以及查詢優化的因素: (1)搜尋優化的整體思路: 索引優化,查詢優化,查詢快取,伺服器設定優化,作業系統和硬體優化,應用層面優化(web伺服器,快取)等等。對於一個整體專案而言只有這些齊頭並進,才能實現mysql高效能。 (2)查詢優化的因素思路:

MySQL優化系列(二)--查詢優化(1)(索引設計)

接下來這篇是查詢優化,使用者80%的操作基本都在查詢,我們有什麼理由不去優化他呢??所以這篇部落格將會講解大量的查詢優化(索引以及庫表結構優化等高階用法後面文章再講),先講單表查優化,再講多表查優化。

MySQL索引原理及查詢優化(轉)

範圍 很難 等於 right 事件 原理 插入 jpg 個人網站 轉自:美團點評技術團隊http://tech.meituan.com/mysql-index.html MySQL憑借著出色的性能、低廉的成本、豐富的資源,已經成為絕大多數互聯網公司的首選關系型數據庫。雖然性

MySQL索引原理及查詢優化-zz

`` 原理 並不是 計劃 ora 實的 birt 總計 war https://tech.meituan.com/mysql-index.html MySQL憑借著出色的性能、低廉的成本、豐富的資源,已經成為絕大多數互聯網公司的首選關系型數據庫。雖然性能出色,但所謂“好馬配

mysql:索引原理與查詢優化

一個 mark index out 般的 test output 都是 records 一 介紹 二 索引的原理 三 索引的數據結構 三 MySQL索引管理 四 測試索引 五 正確使用索引 六 查詢優化神器-explain 七 慢查詢優化的基本步驟 八 慢日誌管理 九 參

MySQL數據庫學習【第九篇】索引原理與查詢優化

xxx 結構 復合 unix select查詢 全文搜索 等等 學習 獲取數據 一、介紹 1.什麽是索引? 一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現性能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些復雜的查詢操作,因此對

MySQL索引原理與查詢優化

英文 borde 發生 聚集 引擎 返回 位置 時間 pro 一 索引介紹 二 索引類型 三 索引分類 四 聚合索引和輔助索引 五 測試索引 六 正確使用索引 七 組合索引 八 註意事項 九 查詢計劃 十 慢日誌查詢 十一 大數據量分頁優化 1. 索引介紹

dataframe按索引)查找多行

trace wrapper pandas 可用 error site values result bsp 很多情況下,我們會根據一個dataframe裏面的值來查找而不是根據索引來查找。 首先我們創建一個dataframe: >>> col = ["id

Mysql優化】聚簇索引聚簇索引概念

頁表 AR post www ont 效果 主鍵索引 隨機 過程 首先明白兩句話:   innodb的次索引指向對主鍵的引用 (聚簇索引)   myisam的次索引和主索引 都指向物理行 (非聚簇索引)   聚簇索引是對磁盤上實際數據重新組織以按

mysql五:索引原理與查詢優化

mysql索引原理與慢查詢優化一、介紹1、為何要有索引? 一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現性能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些復雜的查詢操作,因此對查詢語句的優化顯然是重中之重。說起加速查詢,就不得不提到索引了。2、什麽是索引?

MySQL高級知識-查詢索引優化分析

tid block list 線程 無法 情況 pri mark 查詢 性能下降SQL慢、執行時間長、等待時間長 查詢語句寫的爛索引失效單值索引復合索引關聯查詢太多join(設計缺陷或不得已的需求,除非你能幹的過你的產品經理)服務器調優及各個參數設置(緩沖、線程數等)常見通