Mysql性能優化-索引

索引-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)。

相關文章
相關標籤/搜索