Mysql中爲何應該儘可能避免使列默認值爲NULL

  在使用MySQL的過程當中,踩過幾回Null的坑,因此專門查了一下Mysql中關於Null的表述。sql

【爲何儘可能避免NULL】性能

  • null在Mysql中是一個很是特殊的存在,MySQL在遇到它是要特殊處理,並且還須要更多的存儲空間。
  • 若是查詢中包含有null的列,對MySQL來講,會使得索引、索引統計和值的比較都更加複雜。
  • 當可爲null的列被索引時,每一個索引記錄須要一個額外的字節。在MyIsam裏甚至還可能致使固定大小的索引變成可變大小的索引,甚至致使索引失效。
  • 一般把null改成not null帶來的性能提高比較小,可是若是計劃在該列上創建索引,就應該將該列設置爲not null

總結:在創建索引的列上應該設置爲not null,平時也應該儘可能將列設置爲not null,若後期業務增長鬚要添加索引,就能夠避免問題。索引

 

 

參考資料《高性能MySQL》第四章統計

相關文章
相關標籤/搜索