SQL最佳化必懂概念(一):基數
某個列圍一鍵( Distinct_ Keys )的數量叫作基數。 比如性別列, 該列只有男女之分, 所以
這一列基數是 2 。主鍵列的基數等於表的總行數。基數的高低影響列的資料分佈。一般選擇性大於 20% 的就是均勻分佈的。
求一個表總行數:
Select count(*) from table;
求一個列基數:
Select count(distinct colname) from table;
Select count(*),count(distinct colname) from table;
基數越低說明重複資料越多,基數越高說明重複資料越少
在做最佳化的時候不能只看基數,還要看資料分佈,如果裡面某個使用者佔總行數多數,就算基數高也得走全表掃。
在做 SQL 最佳化的時候, 如果懷疑列資料分佈不均衡, 我們可以使用
select 列,count(*) from 表 group by 列 order by 2 desc;
來
檢視列的資料分佈。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70013625/viewspace-3008298/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微課sql最佳化(1)、基礎概念介紹SQL
- 微課sql最佳化(13)、表的連線方法(2)-基礎概念SQL
- SQL Server最佳化必備之任務排程SQLServer
- 核心必須懂(五): per-CPU變數變數
- 聊一聊SQL最佳化SQL
- SQL 必須宣告標量變數SQL變數
- SQL Server 中的一些概念SQLServer
- MySQL(一)基礎概念MySql
- 程式設計師必知必會:MySQL上15個常見SQL最佳化技巧程式設計師MySql
- RocketMQ 必知概念MQ
- MySQL 必知概念MySql
- Spirng 必知概念
- Redis 必知概念Redis
- 一文入門Kafka,必知必會的概念通通搞定Kafka
- UData查詢引擎最佳化-如何讓一條SQL效能提升數倍SQL
- 圖論(一)--基礎概念圖論
- 【慢SQL效能最佳化】 一條SQL的生命週期SQL
- 如何最佳化負載均衡?一文講懂負載
- 必懂的wenpack優化優化
- Maven最全教程,看了必懂Maven
- SQL最佳化SQL
- 核心必須懂(一):用系統呼叫列印Hello,world!
- 必須要懂的JS之(rest引數與spread語法)JSREST
- 使用sql tuning advisor最佳化sqlSQL
- java 物件導向必懂概述Java物件
- 必須懂的mysql知識MySql
- SQL最佳化1SQL
- SQL最佳化方案SQL
- sql最佳化技巧SQL
- SQL必知必會筆記(上)SQL筆記
- SQL必知必會筆記(下)SQL筆記
- Nestjs入門教程【一】基礎概念JS
- 人工智慧必備數學基礎:高等數學基礎(2)人工智慧
- 人工智慧必備數學基礎:高等數學基礎(1)人工智慧
- 做AI框架必懂的知識AI框架
- 人工智慧必備數學基礎:線性代數基礎(2)人工智慧
- SQL 必知必會 50 題(1 - 5)SQL
- SQL 最佳化手冊SQL