關於 mysql 在開發過程中使用的點

在日常web開發過程中,使用mysql 作為後端數據存儲,是非常常見的,因其開源,性能不差,配合Innodb 存儲引擎,可以實現中小規模的業務開發工作。但是在實際使用中,還是有些開發人員對其使用規則/限制不是很瞭解,今天簡單說一下 update 這個關鍵詞使用的技巧與注意。

一、基本使用

  1. 基本用法,更新某些行記錄,如 update t set c = 'XXXX' where id = 1。就可以簡單對錶 t 中id 為1 的行進行更新;
  2. update 時可以限制行數,如 upate t set c = 'XXX' where name = 'leon' limit 10 。這樣在更新時限定行數,這點在批量操作數據是特別好用,在實際工程中,一般都是主從分離的架構,如果一次性更新太多行,會導致主從同步延遲。update 時加入 limit 實在不失為一種好用的方法;

二、注意事項

  1. 正如前面所說,使用 limit 限制修改行數,那麼在執行 update 時,一定需要有 where 條件限制,否則很容易就全表更新啦!一旦執行,後悔莫及,只能祈禱運維同學不發脾氣;
  2. 在執行 update 時,有順序要求。如下,
    1. UPDATE t set p='8' ,time=if(p='8', 1, 2) where p ='7' 執行完 time =1
    2. UPDATE t set time=if(p='8', 1, 2), p='8' where p ='7' 執行完 time= 2
  3. 通過上面的小例子,可以發現update 時是按照set 時指定的順序依次執行的,這在開發過程中很少有開發者能給注意到此類問題,就會導致業務莫名其妙出現bug。

總結,我們看到了update 在開發時的各種優勢,也能發現update,的一些些坑,希望對你有所幫助。


關於 mysql 在開發過程中使用的點


分享到:


相關文章: