通過達夢資料庫的學習和培訓課程,對資料庫的語句有一些學習和看法。其中一塊是sql對語句優化。學習後了解到在日常專案過程中,常因為某些業務查詢慢和時間長的現象,部分操作時候也要花較長時間,所以或多或少涉及到語句的優化:
首先在硬體上,作為底層基礎設施,良好的裝置執行效率和足夠的網路頻寬要先保證。
其次是去繁就簡,壓縮資料庫的表結構,盡量縮短語句的長度:
去掉不必要的大表的全表掃瞄;快取小表的全表掃瞄。
在查詢語句上的優化:避免在where子句中使用or,!=或<>等操作符;避免in 和 not in等語句。
欄位中避免有函式運算、算術運算等表示式,否則將導致放棄使用索引而進行全表掃瞄。
盡量避免大事務操作,提高系統並行和併發能力。
新建臨時表如果一次性插入很大的資料,則使用 select into 代替 create table,避免造成大量log。
建立索引,擅用索引。如果有較頻繁的作為查詢條件的字段則建立索引,可以快速訪問資料庫表中的特定資訊,提高速度。在建表時例如:like就是%在前面的不走索引,在後面的走索引。
適當的使用臨時表,避免頻繁建立和刪除臨時表,減少系統裡面表資源的消耗。對於一次性的事件,多使用匯出表。
類似updata的一些資料,如果可以則盡量應用到全部字段,頻繁呼叫會引起效能消耗,並產生大量的日誌。
使用最有效的過濾條件,縮短執行速度。
sql優化學習記錄
面試被問到了sql優化,回來學習一下,看別人的文章,自己在手動記錄一遍,算是加深印象吧。所謂sql優化,本質上有三種選擇 1 降低目標sql語句的資源消耗 2 並行執行目標sql語句 3 平衡系統的資源消耗 以上的說明比較難理解,還是記錄一些簡單易懂的方法 1 對查詢進行優化,避免全表查詢。2 避免...
MySQL 之 SQL 語句優化學習
查詢正在執行的任務列表 show full processlist g.生成乙個查詢執行計畫 query execution plan qep 一般情況下,每條sql語句都可以執行 explain 對於 update 和 delete 需要轉化為相應的 select 語句以確保有效使用索引顯示表的建...
基於Oracle的SQL優化 學習(六)
如何得到真實的執行計畫 得到目標sql的執行計畫,大致有以下四種方式 1 explain plan 命令 2 dbms xplan包 3 sqlplus中的autotrace開關 4 10046事件 除了第四種,其他三種方法都有可能是不准的。判斷乙個sq計畫任務任務是否準確,就要看目標sql是否真正...