SQL 優化核心思想

2021-09-04 02:03:06 字數 951 閱讀 2266

概念

英文含義

影響示例

計算臨界

基數cardinality

某個列唯一鍵(distinct keys)的數量

基數的高低影響列的資料分布

性別字段基數為2

5%,當查詢結果返回表中5%以內的資料時應該走索引;反之,走全表掃瞄;在表中有male 有 50個,總資料100,那麼檢索***=male,50%不走索引

選擇性selectivity

基數與總行數的比值再乘以100即為某列的選擇性

當乙個列的選擇性大於20%,說明該列的資料分布就比較均衡了

-- 列的基數

select column_name,count(*) from table group by column_name order by 2 desc

-- 列的選擇性

select

a.table_name as "表名稱",

a.column_name as "表中列名稱",

a.cardinality as "列的基數",

b.table_rows as "表中總行數",

round(a.cardinality / b.table_rows * 100 ,2 ) as "選擇性"

from information_schema.statistics a , information_schema.`tables` b

where a.table_name = b.table_name

and a.table_schema = "test"

and a.table_name = "test" ;

-- 列的選擇性過低,減少資料總數量,定時批量刪除無效資料

order by 1,2這個是什麼意思,該如何解決↩︎

mysql 字典表↩︎

《SQL優化核心思想》 閱讀筆記1

sql優化核心思想一書主要以oracle為例進行資料庫優化的講解。sql優化一定要看自己使用的資料的版本 select from v version where rownum 1 檢視資料庫的版本 第一章 sql優化必懂的概念 基數 cardinality 這個基數指每一列的基數,比如 性別列,只有...

MapReduce核心思想

mapreduce核心程式設計思想,如圖1 1所示。圖1 1 mapreduce核心程式設計思想 1 分布式的運算程式往往需要分成至少 2個階段。2 第乙個階段的 maptask 併發例項,完全並行執行,互不相干。3 第二個階段的 reducetask 併發例項互不相干,但是他們的資料依賴於上乙個階...

Kafka核心思想

kafka是2010年12月份開源的專案,採用scala語言編寫,使用了多種效率優化機制,整體架構比較新穎 push pull 更適合異構集群。設計目標 1 資料在磁碟上的訪問代價為o 1 2 高吞吐率,在普通的伺服器上每秒也能處理幾十萬條訊息 3 分布式架構,能夠對訊息分割槽 4 支援將資料並行的...