全表掃描和全索引掃描繼續(PG-TiDB)
上週我做了Oracle和MySQL的。這兩個是一樣的結論,就是select count(*) from t不帶where條件都是全索引。今天看看PostgreSQL和TiDB的。我們只有一套PG庫,沒有TiDB,這些都是憑藉興趣學習的。所以這上面如果有錯的還請指出。
PG14中一個表,表結果如下:有10萬條資料。
看執行計劃出現的都是 Seq Scan,並沒有看到使用到索引的樣子。這是全表查詢的姿勢。
我只選擇主鍵列,想透過不用會表的方式看看。結果紅框的SQL也沒有達到預期效果。
只有到了使用where條件以後的,select id,才出現了期望得到的僅使用索引的 index only scan的效果。(這裡我是和燦燦問了一下,確定了和我最初想法不一樣)這個是類似MySQL索引覆蓋的效果。
如果是*的話,使用索引就不是索引覆蓋了。 Index Scan和上面的index only scan 是有區別。
PG的做完了,看看TiDB的(TiDB相容MySQL看看這個繼承了嗎?)
TiDB的表結構情況和資料情況
實測結果,也沒有和MySQL一樣,無論是*還是主鍵。不帶where條件都是全表查。沒有用到全索引掃描。
但是如果用到除了主鍵之外的索引列時候。就出現預期的 IndexFullScan效果了。
今天小結一下:PG和TiDB在這個場景上都和Oracle MySQL不一樣。PG不用where條件是基本不行了。TiDB是需要指定一下列才行。Oracle和MySQL是count(*)就行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2936058/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全表掃描和全索引掃描索引
- MySQL中的全表掃描和索引樹掃描MySql索引
- [20210220]全索引掃描快速索引掃描的邏輯讀.txt索引
- [20190815]索引快速全掃描的成本.txt索引
- oracle是如何進行全表掃描的Oracle
- 24_Oracle資料庫全表掃描詳解(四)_全表掃描生產最佳化案例三則Oracle資料庫
- 索引掃描可能不如全表掃描的場景的理解__純粹資料量而言,不涉及CLUSTERING_FACTOR索引
- [20210219]全表掃描邏輯讀問題.txt
- 【Oracle】 索引的掃描方式Oracle索引
- 關係型資料庫全表掃描分片詳解資料庫
- 23_Oracle資料庫全表掃描詳解(三)Oracle資料庫
- 22_Oracle資料庫全表掃描詳解(二)Oracle資料庫
- 21_Oracle資料庫全表掃描詳解(一)Oracle資料庫
- AWVS掃描器掃描web漏洞操作Web
- 技術分享 | 為什麼 SELECT 查詢選擇全表掃描,而不走索引?索引
- PostgreSQL DBA(55) - MVCC#8(對全表掃描的影響)SQLMVCC#
- 掃描器的存在、奧普 掃描器
- win10系統掃描器提示掃描不到掃描器如何解決Win10
- 掃描器
- 掃描王 for Mac專業圖片掃描工具Mac
- 智慧高速公路建設標準和指南全掃描(上)
- 怎麼解決因全表掃描帶來的 Buffer Pool 汙染
- PostgreSQL技術內幕(七)索引掃描SQL索引
- 什麼是漏洞掃描?漏洞掃描功能有哪些?
- 目錄掃描
- 埠掃描器
- python掃描埠Python
- DAST 黑盒漏洞掃描器 第四篇:掃描效能AST
- 電腦掃描檔案怎麼掃描 win10電腦掃描檔案方法介紹Win10
- 全棧工程師之路-React Native之掃描二維碼全棧工程師React Native
- AppBoxFuture: 二級索引及索引掃描查詢資料APP索引
- 京東掃描平臺EOS—JS掃描落地與實踐JS
- 掃描行為分析
- 綜合掃描工具
- 淺談掃描線
- P2032 掃描
- Nydus 映象掃描加速
- sonar(二)掃描配置