MySQL 優化問題

2022-07-09 08:03:10 字數 1161 閱讀 9505

1.執行流程:

2.表結構對效能的影響:

冗餘資料的處理(可以提高系統的整體查詢效能《三正規化》)每一列只能有乙個值

每一行可以被唯一的區分

不包含其他表的已包含的非關鍵資訊

大表拆小表一般不會設計屬性過多的表

一般不會超過500到1000萬資料的表

有大資料的列單獨拆為小表

根據需求展示更加合理的表結構

常用屬性分離為小表

3.sql優化原則:

1、選擇需要優化的sql

2、explain和profile入手

3、使用profile明確sql的問題和優化的結果;

3、永遠用小結果集驅動大的結果集

4、在索引中完成排序

5、使用最小columns

6、使用最有效的過濾條件

7、避免複雜的join和子查詢

4.join的原理:

原理:join的優化原則:

5.執行計畫與執行明細:

6.索引:

1、型別

2、方法

1,b-tree:是一顆樹(二叉樹,平衡二叉樹,平衡樹(b-tree))

使用平衡樹實現索引,是mysql中使用最多的索引型別;在innodb中,存在兩種索引型別,第一種是主鍵索引(primary key),在索引內容中直接儲存資料的位址;第二種是其他索引,在索引內容中儲存的是指向主鍵索引的引用;所以在使用innodb的時候,要盡量的使用主鍵索引,速度非常快;

2,hash:把索引的值做hash運算,並存放到hash表中,使用較少,一般是memory引擎使用;優點:因為使用hash表儲存,按照常理,hash的效能比b-tree效率高很多。

hash索引的缺點:

1,hash索引只能適用於精確的值比較,=,in,或者<>;無法使用範圍查詢;

2,無法使用索引排序;

3,組合hash索引無法使用部分索引;

4,如果大量索引hash值相同,效能較低;

3、建立

4,不會出現在where 子句中的字段不該建立索引;

5, 索引不是越多越好;(只為必要的列建立索引)

MySql優化問題

優化方法 1.設計資料庫時 資料庫表 欄位的設計,儲存引擎 2.利用好mysql自身提供的功能,如索引等 select id from t where num is null可以在num上設定預設值0,確保表中num列沒有null值,然後這樣查詢 select id from t where num...

mysql語句優化問題 MYSQL語句優化

問題 如何從乙個大專案中,迅速的定位執行速度慢的語句.定位慢查詢 1.首先知道mysql一些執行的狀態 比如mysql當前執行的時間 一共執行了多少次select update delete 當前連線數 show status 常用的操作 show status like uptime mysql啟...

mysql優化問題彙總

sql優化 分割槽 分表 垂直分庫 水平分庫 讀寫分離 進入到mysql命令列。mysql u root p show plugins 檢視是否支援分割槽,最後會出現乙個 partition 這個行 表示支援 也可以 show variables like partition show table ...