日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Mysql 5.6 "隱式轉換"導致的索引失效和數據不準確的問題

瀏覽:256日期:2023-10-08 09:52:36

背景

在一次進行SQl查詢時,我試著對where條件中vachar類型的字段去掉單引號查詢,這個時候發現這條本應該很快的語句竟然很慢。這個varchar字段有一個復合索引。其中的總條數有58989,甚至不加單引號查出來的數據不是我們想要的數據。 使用的是mysql 5.6版本,innoDB引擎 實際情況如下

下面我們來看一下執行的結果

Mysql 5.6 "隱式轉換"導致的索引失效和數據不準確的問題

在上面的描述中我們還得注意就是,你的where條件的字符串不加單引號必須是全數字。不然就會報錯

Mysql 5.6 "隱式轉換"導致的索引失效和數據不準確的問題

還有可能查出來的數據不是我們想要的數據。如下圖

Mysql 5.6 "隱式轉換"導致的索引失效和數據不準確的問題

分析

從執行結果來看,使用了單引號的走了對應的索引。沒有使用單引號的沒有走索引,進行了全表掃描。 為什么會這樣呢? mysql的優化器怎么不直接進行類型轉換呢? 在SQL語句中單引號的引入也就是代表這個類型是字符串數據類型CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM,和 SET。。 不加單引號也就代表這是一個字符串之外的類型,如int,bigDecimal類型等 如果給一串有字幕和特殊符號的字符串不加單引號,后果就是類型轉換失敗導致SQl不能執行。

如上圖所述:

1054 - Unknown column ’000w1993521’ in ’where clause’, Time: 0.008000s

我們先來看一下一條SQL的執行過程

Mysql 5.6 "隱式轉換"導致的索引失效和數據不準確的問題

(網圖)

我們先得出結論:如果對索引字段做函數操作(本例是cast函數做了隱式的轉換),可能會破壞索引值的有序性,因此優化器就決定放棄走樹搜索功能。(https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html) [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-l5AwT0xu-1607244327891)(http://note.youdao.com/yws/res/23689/CE6F785994E6476D816B23787CE65217)] 意思也就是:請注意,如果您使用BINARY,CAST()或CONVERT()轉換索引列,則MySQL可能無法有效使用索引。 查出來的數據不準確,也是因為隱式轉換,轉換后導致數值類型不一樣,導致不等變為相等。

隱式轉換

1. 產生條件當操作符與不同類型的操作數一起使用時,會發生類型轉換以使操作數兼容。則會發生轉換隱式發生隱式轉換的條件:

兩個參數至少有一個是 NULL 時,比較的結果也是 NULL,例外是使用 <=> 對兩個 NULL 做比較時會返回 1,這兩種情況都不需要做類型轉換 兩個參數都是字符串,會按照字符串來比較,不做類型轉換 兩個參數都是整數,按照整數來比較,不做類型轉換 十六進制的值和非數字做比較時,會被當做二進制串 有一個參數是 TIMESTAMP 或 DATETIME,并且另外一個參數是常量,常量會被轉換為 timestamp 有一個參數是 decimal 類型,如果另外一個參數是 decimal 或者整數,會將整數轉換為 decimal 后進行比較,如果另外一個參數是浮點數,則會把 decimal 轉換為浮點數進行比較 所有其他情況下,兩個參數都會被轉換為浮點數再進行比較

2. 分析實際遇到的情況

1.那我們也就清楚了,上面我提出的例子是整數和字符串的比較,那就屬于其他情況了。那我們就先來分析一下索引失效的原因

由于屬于隱式轉換的其他情況,所以對比值都得轉換為浮點數進行比較 我們先將查詢條件值進行轉換為浮點數,再著將表的記錄值也得進行轉換,所以這個時候此前已經創建好的索引排序已經不能生效了。因為隱式轉換(函數)已經改變了原來的值,所以說優化器在這里就直接不選用索引,直接使用全表掃描。

2.查詢出不匹配的值(或者說是部分匹配的值),如上面的查詢結果。這真得看看源碼了,這也就是MYsql的隱式轉換規則。這里不就細分析了(因為沒有查到相關的文檔)由于歷史原因,需要兼容舊的設計,可以使用 MySQL 的類型轉換函數 cast 和 convert,來明確的進行轉換。總結

隱式轉換和函數的使用會導致索引失效和select出的數據不準確 隱式轉換的發生條件以及規則 隱式轉換導致索引失效的具體原因,由于需要將對比值都要進行類型轉換導致失效。 避免發生隱式類型轉換,隱式轉換的類型主要有字段類型不一致、in 參數包含多個類型、字符集類型或校對規則不一致等

參考https://dev.mysql.com/doc/refman/5.7/en/type-conversion.htmlhttps://xiaomi-info.github.io/2019/12/24/mysql-implicit-conversion/https://zhuanlan.zhihu.com/p/95170837

到此這篇關于Mysql 5.6 “隱式轉換”導致的索引失效和數據不準確的問題的文章就介紹到這了,更多相關Mysql 5.6隱式轉換導致的索引失效內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩1区2区3区| 久久麻豆视频| 日韩一级网站| 日韩一区欧美二区| 日韩88av| 欧美a级一区| 日韩精品高清不卡| 精品视频网站| 国产精品久久久久久久久久白浆 | 精品午夜视频| 蜜臀国产一区| 蜜臀av国产精品久久久久| 青青国产91久久久久久| 国产精选在线| 最新国产精品视频| 丰满少妇一区| 国产一区91| 卡一卡二国产精品| 午夜电影亚洲| 麻豆精品蜜桃视频网站| 午夜精品久久久久久久久久蜜桃| 久久99国产精品视频| 日韩欧美精品综合| 日韩一二三区在线观看| 亚洲精品影视| 在线天堂资源www在线污| 蜜桃久久精品一区二区| 国产精品视频一区视频二区| 三级精品视频| 日韩精品福利一区二区三区| 欧洲亚洲一区二区三区| 日韩高清欧美激情| 99精品一区| 国产伦一区二区三区| 91精品观看| 久久99蜜桃| 97国产成人高清在线观看| 最新亚洲一区| 麻豆一区二区在线| 日韩久久一区| 最新亚洲激情| 午夜精品久久久久久久久久蜜桃| 欧美日韩在线二区| 国产乱子精品一区二区在线观看| 欧美黑人巨大videos精品| 久久精品国产久精国产爱| 女人天堂亚洲aⅴ在线观看| 久久精品国产一区二区| 婷婷精品在线| 2023国产精品久久久精品双| 国产一区二区三区天码| 三级精品视频| 麻豆极品一区二区三区| 一区二区精品| 婷婷亚洲综合| 午夜精品成人av| 亚洲在线国产日韩欧美| 超碰在线99| 国产精品久久久久毛片大屁完整版| 日韩av二区| 欧美日韩黄网站| 人人爽香蕉精品| 国户精品久久久久久久久久久不卡| 免费视频一区二区| 久久久精品区| 婷婷精品在线| 每日更新成人在线视频| 欧美成人日韩| 久久精品国内一区二区三区水蜜桃| 视频在线观看91| 日韩精品欧美激情一区二区| 国产成人免费精品| 99国产精品视频免费观看一公开| 日本亚洲三级在线| 亚洲一区二区三区高清| 国产精品videossex| 日韩专区视频网站| 在线精品亚洲| 国产精品社区| 国产高清一区| 国产日韩一区二区三区在线播放| 国产高潮在线| 精品国产欧美| 精品一区二区男人吃奶 | 一区二区电影在线观看| 欧美日韩中文一区二区| 久久久男人天堂| av在线最新| 欧洲精品一区二区三区| 色婷婷狠狠五月综合天色拍| 成人日韩在线观看| 日本国产亚洲| 日本在线观看不卡视频| 日韩动漫一区| 99久久婷婷| 欧美一区网站| 亚洲精品三级| 日韩av一区二区三区| 日本亚洲最大的色成网站www | 天堂精品久久久久| 亚洲综合福利| 亚洲三级网址| 青草国产精品| 亚洲视频播放| 首页亚洲欧美制服丝腿| 亚洲深夜视频| 亚洲伦乱视频| 伊人久久亚洲影院| 亚洲三级在线| 国产亚洲久久| 亚洲专区视频| 欧美日韩一二| 欧美美女一区| 亚洲一区二区av| 久久精品xxxxx| 久久男人av| 欧美freesex黑人又粗又大| 久久精品成人| 老司机精品久久| 青草综合视频| 九九99久久精品在免费线bt| 最近高清中文在线字幕在线观看1| 欧美日韩黄网站| 国产精品nxnn| 亚洲狼人精品一区二区三区| 日本欧美一区| 国内精品伊人| 国产一区视频在线观看免费| 中日韩男男gay无套| 亚洲不卡视频| 性欧美精品高清| 亚洲久草在线| 国产精品久久久久9999高清| se01亚洲视频| 免费在线成人网| 免费一级欧美片在线观看网站 | 亚洲精品伦理| 另类小说一区二区三区| 日本色综合中文字幕| 亚洲免费高清| 日韩极品在线观看| www.51av欧美视频| 亚洲在线国产日韩欧美| 欧美日韩xxxx| 五月亚洲婷婷 | 久久99久久人婷婷精品综合| 日韩美女一区二区三区在线观看| 久久精品国产亚洲一区二区三区| 欧美亚洲三级| 日韩成人午夜精品| 精品久久一区| 欧美资源在线| 国产在线观看91一区二区三区 | 欧洲av不卡| 亚洲性视频在线| 激情黄产视频在线免费观看| 伊人网在线播放| 天堂成人国产精品一区| 宅男噜噜噜66国产日韩在线观看| 欧美日韩在线二区| 一区二区三区视频免费观看| 日本在线不卡视频一二三区| 欧美成人基地| 国产毛片精品| 精品国产乱码久久久久久1区2匹| 美女毛片一区二区三区四区最新中文字幕亚洲 | 香蕉视频成人在线观看| 麻豆极品一区二区三区| 国产美女精品| 成人在线超碰| 日韩激情网站| 91九色精品| 成人国产精品一区二区网站| 深夜福利亚洲| 五月天久久777| 国模大尺度视频一区二区| 男女激情视频一区| 日韩在线观看一区| 国产免费播放一区二区| 亚洲一区二区三区高清| 热三久草你在线| 91精品福利观看| 亚洲精品小说| 免费在线观看一区二区三区| 亚洲精品三级| 亚洲成人不卡| 精品三级在线观看视频| 日韩1区2区日韩1区2区| 最新亚洲一区| 日韩精品91| 精品国产亚洲一区二区在线观看| 日韩高清成人| 国产欧美日韩一区二区三区四区 | 亚洲午夜一级| 老牛国内精品亚洲成av人片| 四虎成人精品一区二区免费网站| 欧美交a欧美精品喷水| 亚洲有吗中文字幕| 欧美在线网站| 日韩av首页|