婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Mysql 5.6 隱式轉換導致的索引失效和數據不準確的問題

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

熱門標簽:常州電銷外呼系統一般多少錢 房產智能外呼系統品牌 400電話鄭州申請 地圖標注被騙三百怎么辦 北京人工外呼系統價錢 云南語音外呼系統平臺 沃克斯電梯外呼線路圖 福州呼叫中心外呼系統哪家好 天智外呼系統

背景

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

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

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

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

分析

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

如上圖所述:

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

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

(網圖)

  • 我們先得出結論:如果對索引字段做函數操作(本例是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. 產生條件
當操作符與不同類型的操作數一起使用時,會發生類型轉換以使操作數兼容。則會發生轉換隱式
發生隱式轉換的條件:

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

2. 分析實際遇到的情況

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

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

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

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

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

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

您可能感興趣的文章:
  • MySQL隱式類型轉換導致索引失效的解決
  • 解決mysql模糊查詢索引失效問題的幾種方法
  • MySQL索引失效的典型案例
  • mysql索引失效的幾種情況分析
  • MySQL索引失效的幾種情況詳析
  • MySQL索引失效的幾種情況匯總
  • 導致MySQL索引失效的一些常見寫法總結
  • mysql回表致索引失效案例講解

標簽:移動 徐州 拉薩 沈陽 鹽城 黔東 沈陽 珠海

巨人網絡通訊聲明:本文標題《Mysql 5.6 隱式轉換導致的索引失效和數據不準確的問題》,本文關鍵詞  Mysql,5.6,隱式,轉換,導致,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql 5.6 隱式轉換導致的索引失效和數據不準確的問題》相關的同類信息!
  • 本頁收集關于Mysql 5.6 隱式轉換導致的索引失效和數據不準確的問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕av一区二区三区高| 国产一区二区三区久久久| 亚洲午夜久久久久久久久久久| 欧洲亚洲精品在线| 成人免费观看视频| 高清国产一区二区| 成人精品国产福利| 国产欧美精品一区| 亚洲丰满少妇videoshd| 午夜精品久久久久久久久| 91精品福利视频| 91精品免费观看| 欧美国产乱子伦| 九一久久久久久| 精品国产一区二区三区不卡| 国产女人18毛片水真多成人如厕| 中文字幕色av一区二区三区| 欧美日韩成人综合天天影院| 日韩精彩视频在线观看| 日韩丝袜美女视频| 欧美一区二区三区系列电影| 国产精品区一区二区三| 欧美主播一区二区三区美女| 久久久99免费| 亚洲一卡二卡三卡四卡| 久久五月婷婷丁香社区| aaa欧美大片| 日韩视频一区二区三区在线播放 | 日本系列欧美系列| 日韩av在线免费观看不卡| 久久久久久免费网| 视频一区中文字幕国产| 欧美性受xxxx黑人xyx| 日本韩国一区二区三区视频| 蜜桃精品视频在线观看| 在线不卡中文字幕播放| 亚洲一区二区五区| 欧美精品一区二区三区很污很色的 | 欧美日韩一卡二卡| 国产精品久久久久久久久久免费看| 免费精品视频在线| 麻豆精品国产91久久久久久| 亚洲色图19p| 波多野结衣在线一区| 久久精品一区二区三区不卡牛牛| 国产精品国产三级国产三级人妇 | 91丨九色丨尤物| 久久久高清一区二区三区| 成人欧美一区二区三区小说 | 亚洲一区二区精品视频| 久久久久久久久久久久久久久99 | 视频一区中文字幕| 在线不卡欧美精品一区二区三区| 久久精品国产在热久久| 久久综合九色综合欧美亚洲| 精品一二三四区| 久久综合网色—综合色88| 555www色欧美视频| 老司机午夜精品| 精品国产乱码久久久久久久| 亚洲免费毛片网站| 2020国产精品| 91丝袜国产在线播放| 亚洲va国产va欧美va观看| 日韩一卡二卡三卡四卡| 久久夜色精品国产欧美乱极品| 亚洲国产激情av| 粉嫩13p一区二区三区| 青青草一区二区三区| 欧美日本国产视频| 亚洲成人av中文| 日韩高清不卡一区二区三区| 欧美巨大另类极品videosbest| 裸体一区二区三区| 日本不卡视频在线| 国产精品久99| 亚洲成人午夜电影| 欧美卡1卡2卡| 成人免费小视频| 一本大道av伊人久久综合| 国产精品综合一区二区| 成人欧美一区二区三区黑人麻豆| 精品一区二区三区免费| 国产亚洲欧洲997久久综合| 欧美精品1区2区3区| 日本不卡不码高清免费观看| 欧美一区二区黄色| 国产成人激情av| 久久91精品久久久久久秒播| 国产精品伦理一区二区| 97se亚洲国产综合自在线不卡| 日韩欧美综合一区| 欧美日韩精品高清| 老鸭窝一区二区久久精品| 国产欧美一区二区三区沐欲| 青青草精品视频| 免费一级欧美片在线观看| 久久久久久久久久久黄色| 91视频精品在这里| 麻豆成人久久精品二区三区红| 欧美极品美女视频| 在线综合亚洲欧美在线视频| 国产麻豆视频精品| 国产在线精品视频| 亚洲精品视频在线| 7777精品伊人久久久大香线蕉超级流畅| 精品少妇一区二区三区视频免付费| www.亚洲精品| 亚洲欧美日韩一区| 免费成人在线影院| 香蕉久久夜色精品国产使用方法| 精品日产卡一卡二卡麻豆| 一区二区三区欧美激情| 国产精品婷婷午夜在线观看| 精品国产伦一区二区三区免费| 亚洲人成影院在线观看| 国产精品久久久久精k8| 99久久99久久精品免费看蜜桃| 国产成人在线免费| 国产尤物一区二区在线| 日韩欧美在线综合网| 在线精品视频一区二区三四 | 激情国产一区二区 | 久久精品国产99| 性欧美疯狂xxxxbbbb| 亚洲免费在线播放| 一区二区三区中文字幕电影| 国产精品高清亚洲| 亚洲男人的天堂一区二区| 一区二区三区高清不卡| 国产精品二区一区二区aⅴ污介绍| 日韩精品一卡二卡三卡四卡无卡| 波多野结衣91| 国产午夜一区二区三区| 久久国产成人午夜av影院| 欧美日韩激情在线| 亚洲伦理在线免费看| 成人午夜电影小说| 中文字幕精品综合| 国产盗摄一区二区| 国产日韩欧美精品电影三级在线| 六月婷婷色综合| 日韩精品中文字幕一区| 免费观看久久久4p| 日韩欧美黄色影院| 紧缚捆绑精品一区二区| 亚洲精品一区二区三区精华液 | 亚洲图片欧美一区| 97国产精品videossex| 综合激情成人伊人| 91丨porny丨国产| 亚洲一区在线视频观看| 欧美日韩久久久一区| 日韩电影一二三区| 日韩欧美一区二区视频| 九九在线精品视频| 日本一二三四高清不卡| 99久久伊人精品| 亚洲成人在线网站| 精品国产一区二区三区不卡| 精品无人码麻豆乱码1区2区 | 91美女片黄在线观看| 洋洋成人永久网站入口| 欧美日韩免费视频| 日韩av电影免费观看高清完整版 | 秋霞电影一区二区| 精品国产乱码久久久久久浪潮| 国产成人8x视频一区二区| 亚洲视频在线观看三级| 欧美男生操女生| 国模娜娜一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟 | 成人免费av在线| 夜夜亚洲天天久久| 久久亚区不卡日本| 91激情五月电影| 国产美女在线观看一区| 亚洲精品国产第一综合99久久| 欧美一级电影网站| 91一区二区在线| 日韩av在线发布| 亚洲美女在线一区| 久久免费电影网| 欧美亚洲尤物久久| 国产成人在线影院| 日韩不卡一二三区| 亚洲精品成人精品456| 精品国产乱码久久久久久影片| 97se狠狠狠综合亚洲狠狠| 蜜桃传媒麻豆第一区在线观看| 日韩一区在线免费观看| 精品成人免费观看| 91麻豆成人久久精品二区三区| 国内精品伊人久久久久av影院| 一区二区三区精密机械公司| 久久精品亚洲国产奇米99| 欧美精品 日韩| 91香蕉视频在线| 国产成人综合在线播放| 精品一区二区三区在线播放 |