對於SQL優化學習和記錄

2021-10-09 03:55:40 字數 678 閱讀 2360

通過達夢資料庫的學習和培訓課程,對資料庫的語句有一些學習和看法。其中一塊是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是否真正...