把數據寫入到數據庫的時,常常會碰到先要檢測要插入的記錄是否存在,然后決定是否要寫入。
我這里總結了判斷記錄是否存在的常用方法:
sql語句:select count(*) from tablename;
然后讀取count(*)的值判斷記錄是否存在。對于這種方法性能上有些浪費,我們只是想判斷記錄記錄是否存在,沒有必要全部都查出來。
以下這個方法是我推薦的。
sql語句:select 1 from tablename where col = col limit 1;
然后讀取語句執行所影響的行數。
當然這里limit 1很重要。這要mysql找到一條記錄后就不會在往下找了。這里執行所影響的行數不是0就是1,性能提高了不少。
如果你用的是PDO,可以用rowCount(),很容易就都到執行所影響的行數。
這里還有人可能會去讀取sql語句查詢到的記錄,然后判斷記錄是否存在,從而判斷記錄是否存在。這個方法雖然可行,但對于我們的要求來說,還是有些浪費,我們不需要查詢到的記錄,所有性能上會有損失。這里不推薦。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END