索引-80%優化處理mysql
mysql 索引-存儲。redis
1.優化索引。算法
2.最優索引。sql
普通sql - 好的索引-最優索引函數
索引優勢:--索引原本就是有序oop
1.1:減小掃描量mysql索引
1.2:避免排序+避免臨時表產生優化
1.3:隨機I/O變爲順序I/O 固定硬盤 ssd iops-每秒查詢次數。.net
1.4:能夠減小查詢鎖定行。排序
串行硬盤。
B+Tree索性--mysql索引
二叉搜索樹。
平衡的m路搜索樹
==
聚族索引
主鍵+補助建、
二次查詢,可是io控制的好,不損失,減小維護成本。適合更新多的。
非聚族索性
都是
InnoDB
=====================
表空間-區-頁-16-塊-4
engine
14.6g
聯合索引。
=========================================================
避免where 字句中 對字段+函數,避免格式轉化等函數,不然索引就無效。
最左原則。計算索引值。雙B關聯,字符類型不一致,關聯會查詢換較慢。
mysql。
避免關聯拆sql處理。主從分離-讀寫分離。
service存控制了。
水平拆表。
避免使用子查詢。
總數:1. count() 2.統計某列除null外的數量。
聯合索引-一次查詢
============================================
分頁:
limit 0,10; size+計算初步偏移量。currentPage 。當期頁和最終請求頁的差值。
==============================
用戶列表再次優化查詢。
==============================
小表驅動大表才能left join
Theta書寫sql;sql優化器。
select * from a,b where a.a1.=b.b2;
=============================
數據挖掘。hadoop計算分析結果實時轉到mysql中。
複雜度-字典 索引記錄關聯嗎?
=========================================
mysql離線報表,後臺統計。
推薦系統-算法。
分表-分庫。
proxy-redis. mysql 區-頁-塊
跨行溢出式……
----------------------------------------
每一個InnoDB表具備一個特殊的索引稱爲聚簇索引(也叫彙集索引,聚類索引,簇集索引)。
若是表上定義有主鍵,該主鍵索引就是聚簇索引。
若是未定義主鍵,MySQL取第一個惟一索引(unique)並且只含非空列(NOT NULL)做爲主鍵,InnoDB使用它做爲聚簇索引。
若是沒有這樣的列,InnoDB就本身產生一個這樣的ID值,它有六個字節,並且是隱藏的,使其做爲聚簇索引。
表中的聚簇索引(clustered index )就是一級索引,除此以外,表上的其餘非聚簇索引都是二級索引,又叫輔助索引(secondary indexes)。