是否使用繃定變數的一些建議
1、建議使用繫結變數的列:對於流水號、訂單號、使用者ID、電話號碼、身份證
號碼、證件號碼等,這類列的特點是列的唯一性較好、列的不同值數量跟表的
資料量比較接近,而這類列涉及的SQL語句往往存在高併發,寫成繫結變數會
大大減少資料庫的解析成本。
號碼、證件號碼等,這類列的特點是列的唯一性較好、列的不同值數量跟表的
資料量比較接近,而這類列涉及的SQL語句往往存在高併發,寫成繫結變數會
大大減少資料庫的解析成本。
2、不建議使用繫結變數的列:能夠列舉的列(比如狀態型別欄位,這部分型別
欄位往往不同值較少,一般即使上千萬的資料表中該列也只有十多個、幾十個
的不同值), 即使不寫繫結變數也只會產生極少數的SQL_id,這部分的oracle
解析消耗微乎其微,並且這種型別的列有可能存在傾斜資料,而如果使用繫結
變數,則對於傾斜資料的評估並不準確,可能導致該列無法走索引範圍掃描、
或者影響表JOIN階段驅動表的選擇等。
欄位往往不同值較少,一般即使上千萬的資料表中該列也只有十多個、幾十個
的不同值), 即使不寫繫結變數也只會產生極少數的SQL_id,這部分的oracle
解析消耗微乎其微,並且這種型別的列有可能存在傾斜資料,而如果使用繫結
變數,則對於傾斜資料的評估並不準確,可能導致該列無法走索引範圍掃描、
或者影響表JOIN階段驅動表的選擇等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2130224/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 陶哲軒對數學學習的一些建議
- 關於一些變數的使用變數
- 變數的定義和使用變數
- nginx內建預定義變數Nginx變數
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- 新型“智慧繃帶” 能提醒你傷口是否感染
- 繃
- Oracle學習的一些建議Oracle
- 生產環境中使用Docker Swarm的一些建議DockerSwarm
- PHP專案中CodeIgniter使用的一些建議PHP
- uwsgi協議的變數協議變數
- angular中定義全域性變數及全域性變數的使用Angular變數
- 一些運維相關的建議運維
- 前端實習面試的一些建議前端面試
- 一些有價值的工作建議
- 關於學習的一些建議
- 頁面優化的一些建議優化
- java程式設計的一些建議Java程式設計
- lua語法-變數的定義與使用變數
- 給服務端小白的一些建議服務端
- 來自阿里前端的一些中肯建議阿里前端
- ORACLE SQL 效能優化的一些建議OracleSQL優化
- 測試工具培訓的一些建議
- javascript中檢測變數是否存在時,最好使用typeofJavaScript變數
- Android全域性變數的定義與使用Android變數
- 如何刪除使用export定義過的變數?Export變數
- 超大記憶體環境下的Oracle RAC引數設定建議記憶體Oracle
- Linux Awk 內建變數使用介紹Linux變數
- 使用remove_constants工具檢視Oracle是否使用繫結變數REMOracle變數
- 關於字串的一些常用判斷 是否全部為數字 是否包含有數字 是否包含有英文字串
- 雲伺服器防黑的一些建議伺服器
- 書寫高質量sql的一些建議SQL
- 開始學習Linux的一些建議Linux
- 給剛玩Hadoop的朋友一些建議Hadoop
- 編寫高效CSS程式碼的一些建議CSS
- [筆記]關於調整的一些建議筆記
- 圖靈社群改版的一些建議和思考圖靈
- 給程式設計師新手的一些建議程式設計師