您好,登錄后才能下訂單哦!
小編給大家分享一下MySQL中NULL對索引的影響有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在mysql5.6和5.7下均可,存儲引擎為InnoDB。
數據如下:
1. 單列索引
給name列建單列索引:
查詢name為null的行:
查詢name為'test0'或為null的行:
可以發現都可以用到索引。
2. 聯合索引
給age和name添加聯合索引:
查詢age為14并且name為null的行:
可以發現同樣用到了索引。
3. 其他
雖然MySQL可以在含有null的列上使用索引,但不代表null和其他數據在索引中是一樣的。
不建議列上允許為空。最好限制not null,并設置一個默認值,比如0和''空字符串等,如果是datetime類型,可以設置成'1970-01-01 00:00:00'這樣的特殊值。
對MySQL來說,null是一個特殊的值,Conceptually, NULL means “a missing unknown value” and it is treated somewhat differently from other values。比如:不能使用=,<,>這樣的運算符,對null做算術運算的結果都是null,count時不會包括null行等,null比空字符串需要更多的存儲空間等。
看完了這篇文章,相信你對“MySQL中NULL對索引的影響有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。