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最佳化涉及到的基本概念(一)SQL
- SQL最佳化 —— 讀懂執行計劃SQL
- 微課sql最佳化(13)、表的連線方法(2)-基礎概念SQL
- SQL 優化 概念篇 之 選擇性和基數SQL優化
- 核心必須懂(五): per-CPU變數變數
- 從一條巨慢SQL看基於Oracle的SQL最佳化SQLOracle
- 基於Oracle的SQL最佳化OracleSQL
- SQL最佳化(一) 索引SQL索引
- SQL Server最佳化必備之任務排程SQLServer
- MySQL(一)基礎概念MySql
- 一、storm基礎概念ORM
- 軟體測試面試必備的一些基礎理論概念面試
- SQL 必須宣告標量變數SQL變數
- Spirng 必知概念
- MySQL 必知概念MySql
- RocketMQ 必知概念MQ
- Redis 必知概念Redis
- 基於Oracle的sql最佳化(1)OracleSQL
- oracle 查詢計劃中的基數cardinality概念(一)Oracle
- 聊一聊SQL最佳化SQL
- SQL4必知必會摘錄(一)SQL
- 一文入門Kafka,必知必會的概念通通搞定Kafka
- 如何最佳化負載均衡?一文講懂負載
- 圖論(一)--基礎概念圖論
- 必懂的wenpack優化優化
- Maven最全教程,看了必懂Maven
- SQL Server 中的一些概念SQLServer
- 程式設計師必知必會:MySQL上15個常見SQL最佳化技巧程式設計師MySql
- 核心必須懂(一):用系統呼叫列印Hello,world!
- UData查詢引擎最佳化-如何讓一條SQL效能提升數倍SQL
- java 物件導向必懂概述Java物件
- 必須懂的mysql知識MySql
- Mysql 效能最佳化--基礎引數MySql
- sql最佳化:使用sql profile最佳化sql語句SQL
- 讀懂概率圖模型:從基本概念和引數估計開始模型
- 必須要懂的JS之(rest引數與spread語法)JSREST
- 人工智慧必備數學基礎:高等數學基礎(1)人工智慧