資料庫之查詢最佳化
(1) 來自pg文件
PostgreSQL使用的是基於成本的最佳化器(Cost based
optimizer)。理論上基於成本的最佳化器會計算使用者輸入的查詢語句的每個合法的查詢計劃的執行成本,然後從中選擇成本最小的計劃作為執行查詢語句的
最終計劃。在實際應用中,查詢語句的合法的計劃的個數是隨查詢複雜度的增加呈指數增長的。對於過於複雜的查詢,如果遍歷每個合法的查詢計劃,將會消耗 掉大量的時間,這是不能被使用者接受的,所以最佳化器不會遍歷每個合法的查詢計劃,只會選擇一部分查詢計劃,從中找到執行成本最小的計劃。
(2)調整QL查詢計劃
在oracle中使用hint可以調整SQL的,
在postgresql可以使用如下的方法進行調整
使用set to off/on;調整查詢計劃,引數如下:
enable_seqscan是否走全表掃描
enable_hashjoin是否允許走hash連線
enable_nestloop是否允許走nestloop連線
enable_mergejoin是否允許走合併連線
enable_tidscan是否允許走tid掃描(類似oracle中的按rowid訪問)
enable_bitmapscan是否允許走bitmap掃描
enable_hashagg是否允許走hash聚集(也就是做group by時)
enable_indexscan是否允許走索引
enable_sort是否允許走排序
constraint_exclusion是否允許走分割槽
本文轉自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29379530/viewspace-2127286/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 梧桐資料庫淺談查詢最佳化技巧資料庫
- 資料庫查詢和資料庫(MySQL)索引的最佳化建議資料庫MySql索引
- Django筆記二十八之資料庫查詢最佳化彙總Django筆記資料庫
- 資料庫全表查詢之-分頁查詢優化資料庫優化
- 資料庫高階查詢之子查詢資料庫
- Laravel Passport OAuth 資料庫查詢改快取最佳化LaravelPassportOAuth資料庫快取
- 資料庫系列:MySQL慢查詢分析和效能最佳化資料庫MySql
- Jemter查詢資料庫資料庫
- 求助:資料庫查詢資料庫
- ThinkPHP 資料庫查詢PHP資料庫
- 資料庫排序查詢資料庫排序
- 查詢資料庫大小資料庫
- (十三)資料庫查詢處理之QueryExecution(2)資料庫
- (十) 資料庫查詢處理之排序(sorting)資料庫排序
- 資料庫學習筆記之查詢表資料庫筆記
- 資料統計查詢最佳化
- 資料庫基礎查詢--單表查詢資料庫
- (十二)資料庫查詢處理之Query Execution(1)資料庫
- 資料庫查詢語句資料庫
- 資料庫查詢優化資料庫優化
- php基礎之連線mysql資料庫和查詢資料PHPMySql資料庫
- MySQL資料庫基礎——多表查詢:子查詢MySql資料庫
- 20240719資料庫關聯查詢、條件查詢資料庫
- MongoDB資料庫中查詢資料(下)MongoDB資料庫
- Logtail:像查詢資料庫一樣查詢日誌AI資料庫
- SQLServer查詢所有資料庫大小SQLServer資料庫
- 資料庫中單表查詢資料庫
- SQL Server 跨資料庫查詢SQLServer資料庫
- 【資料庫】MySQL查詢優化資料庫MySql優化
- 資料庫查詢慢的原因資料庫
- 資料庫查詢語言(DQL)資料庫
- openguass 資料庫狀態查詢資料庫
- 資料庫系統概述之資料庫最佳化資料庫
- 在MongoDB資料庫中查詢資料(上)MongoDB資料庫
- Prometheus時序資料庫-資料的查詢Prometheus資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- 查詢資料庫的資料量的大小資料庫
- SQL資料庫查詢最佳化技巧提升網站訪問速度的方法SQL資料庫網站
- Android SQL資料庫查詢方法 query( )AndroidSQL資料庫