概念
英文含義
影響示例
計算臨界
基數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 支援將資料並行的...