久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

程序員一不小心就踩坑,,mysql這個潛規(guī)則,,需要警惕

 timtxu 2019-08-14

最近一直在忙校招的事情,所以一直沒有及時更新文章,,今天我們來聊一聊一個經(jīng)典的問題,,Mysql的字段,為什么要盡量設置成非空,。

程序員一不小心就踩坑,,mysql這個潛規(guī)則,需要警惕

Mysql這條潛規(guī)則,,很多人都覺得時以訛傳訛,,三人成虎,實際上,,在Mysql官網(wǎng)上,,也是對這一項也是有特別的說明,說Mysql中的Null字段,需要額外的設置1個bit進行表示,。

很多程序員都認為,,這條規(guī)則可能會造成mysql的性能降低, 其實不然,,我認為真正的原因,,應該是這種數(shù)據(jù)使用起來非常容易挖坑。很多時候,,如果sql寫得不規(guī)范,容易造成數(shù)據(jù)沒有被篩選出來,。

我記得幾年前,,還在一家創(chuàng)業(yè)公司的時候,公司發(fā)生這樣一個案例,。有一次交易系統(tǒng)出了故障,,造成一些訂單的沒有贈品的數(shù)據(jù)錯誤,這個時候就想從數(shù)據(jù)庫里面撈出數(shù)據(jù)補償用戶,,結果訂單狀態(tài)這種核心字段竟然可以為空,,加上操作者又是一個新人寫得數(shù)據(jù)庫查詢sql不規(guī)范,導致很多訂單都沒有篩選出來,,加上微博本已發(fā)出補償公告,,造成更大的用戶投訴。

那么,,這種為空的數(shù)據(jù)庫列,,篩選有什么坑呢?

程序員一不小心就踩坑,,mysql這個潛規(guī)則,,需要警惕

!=不等于查詢異常

舉個簡單的例子,,我們有一堆用戶的基本數(shù)據(jù),,男生設置為1,女生設置為2,,未知設置為空,,當我們使用數(shù)據(jù)庫查詢語句,使用不等于的方式查詢女生,,最后只能夠把男生篩選出來,,而不能把未知的篩選出來。

最好的方法,,就是把位置的默認設置為0,。同樣,,使用not in等sql語法,也有同樣的問題,。

使用contact的時候異常

我們經(jīng)常會用數(shù)據(jù)庫存一些用戶的收貨地址,,有時候會使用數(shù)據(jù)庫的contact進行地址的拼接,例如數(shù)據(jù)庫里面存在省份,、城市,、詳細收貨地址等字段,如果其中某一個為NULL的話,,那么最終拼接出來的結果,,也會是NULL。從而達不到預期的效果,。

使用count可能有異常

如果我們使用count(字段名),,如果這個字段剛好為空的時候,就不會被統(tǒng)計進去,。

程序員一不小心就踩坑,,mysql這個潛規(guī)則,需要警惕

總結

既然mysql的設置為空這么坑,,我們需要怎么應對呢,?首先,當我們查詢?yōu)榭盏淖侄问?,要使?strong>IS NULL,。上述例子,查詢非女生的用戶,,我們就需要指定不等于2或者為空的字段,。

不過更重要的是,,如果不是特殊需求,,我們盡可能的不要設置字段為空,雖然設置為空對性能的影響不大,,但是,,特別容易挖坑,畢竟程序員是一個團隊協(xié)作的工作,,少一些潛規(guī)則,,少一些機關,頭發(fā)會多一些,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多