目標:減少輸入
反模式:使用*
缺點1、傳輸的資料量大。
解決方案:明確列出列名
這一章內容太簡單了,好像沒啥可說的。
我想起用ibatis的時候遇到的乙個問題:最初的sql都是自動生成的,比如根據id update某個表,輸入引數是這個表對應的乙個entity,包含了這個表幾乎所有的字段。這樣使用的時候往往是:
先new乙個entity,id確定,然後只給其中幾個字段賦值
呼叫這個update語句執行。
這樣沒有賦值的字段就被對應的default(type)值覆蓋了!
SQL反模式筆記16 模糊查詢
目標 模糊查詢 反模式 like 缺點 效能太差,無法使用索引,必須全表遍歷。合理使用反模式 資料量小 條件簡單時可以用。解決方案 使用特殊的搜尋引擎而不是sql 1 資料庫擴充套件,各大資料庫都有對全文檢索的解決方案,但是配置複雜。2 使用第三方搜尋引擎,比如lucene.3 實現自己的搜尋引擎 ...
SQL反模式筆記15 隨機排序
目標 隨即排序 反模式 使用rand 缺點是無法利用索引,而且是全表遍歷,效能太差 合理使用反模式 資料量很小的時候可以用 解決方案 1 使用隨機數 ceil rand select max id from t as randid 問題是,取出的id有可能是不存在的,因為id不是連續的 2 選擇下乙...
SQL反模式總結
1.亂穿馬路 現象 在乙個表鍵中存放多個值,用,類似的符號隔開 問題 這會讓查詢.插入和刪除的效率變得非常低 解決方案 不要在乙個表鍵中存放多個值,將所有原本在乙個表鍵中的值存放到一張單獨的表,在新錶中建立兩個屬性,乙個與原表的主鍵建立外來鍵關係,乙個標明值。例子見表 產品id 經銷商 1 張三 1...