mysql any 效率 關於mysql的效能優化

2021-10-17 16:50:26 字數 1933 閱讀 5622

1.用 show status like 'value' 查詢mysql資料庫效能

2. 用 explain select * from  table 或 describe select * from  table 檢視執行計畫

3.使用索引

--使用 like關鍵字時 like '%le'索引不起作用,但 like 'le%'索引可以起作用

--  使用關鍵字or時要求兩個字段必須同為索引,否則索引不起作用

4:優化資料庫結構

有些表在設計時設定了很多字段,但部分字段使用頻率很低,當這些表的資料量很大時查詢資料的速度就會很慢

1. 可以將其分解為多個表

2.增加中間表 --如果經常聯表查詢會降低mysql資料庫的查詢速度,可以將經常查詢的字段放在中間表中

5:優化插入速度

1 .先禁用索引, 然後重啟開啟索引 -- alter table 表名 disable keys -- alter table 表名enable keys

2. 禁用唯一性檢查 set unique_checks=0 --set unique_checks=1

3.insert 語句用乙個insert插入多個語句,而不是多次insert

4.分析表、檢查表、優化表

多表關聯查詢:

3.子查詢:in ;比較運算子:=,!=,>=,>,

4:合併查詢結果:union 去除相同記錄;union all 不去重;

查詢優化:

1.建立表的時候,字段盡可能的小;

2.關聯查詢時,業務特性相同的字段資料型別也應該相同。

3.使用索引:索引應建立在那些將用於join,where判斷和orderby排序的字段上。盡量不要對資料庫中某個含有大量重複的值的字段建立索引;

4.用explain describe檢視執行計畫

5.應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃瞄。

6.應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄,如:

select id from t where num is null

可以在num上設定預設值0,確保表中num列沒有null值,然後這樣查詢:

select id from t where num=0

7.應盡量避免在 where 子句中使用 or 來連線條件,否則將導致引擎放棄使用索引而進行全表掃瞄,如:

select id from t where num=10 or num=20

可以這樣查詢:

select id from t where num=10

union all

select id from t where num=20

8.in 和 not in 也要慎用,否則會導致全表掃瞄

9.應盡量避免在 where 子句中對字段進行表示式操作或函式操作,應該對引數進行表示式操作或函式操作

10.不要在 where 子句中的「=」左邊進行函式、算術運算或其他表示式運算,否則系統將可能無法正確使用索引;

13.很多時候用 exists 代替 in 是乙個好的選擇:

select num from a where num in(select num from b)

select num from a where exists(select 1 from b where num=a.num)

14:索引並不是越多越好,索引固然可以提高相應的 select 的效率,但同時也降低了 insert 及 update 的效率,

因為 insert 或 update 時有可能會重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。乙個表的索引數最好不要超過6個,

若太多則應考慮一些不常使用到的列上建的索引是否有必要。

15 :任何地方都不要使用 select * from t ,用具體的字段列表代替「*」,不要返回用不到的任何字段。

linux php 增加mysql 關於Mysql

mysql是乙個,由瑞典mysql ab 公司開發,屬於 oracle 旗下產品。mysql 是最流行的關係型資料庫管理系統之一,在 web 應用方面,mysql是最好的 rdbms relational database management system,關聯式資料庫管理系統 應用軟體之一。my...

關於c IO的效率

自己寫了一段測試程式,比較c io讀和c語言的io讀的效率 long tickcount gettickcount 取得系統啟動後的時間 miliseconds int k 0 cout for c api endl for int i 0 i 10000 i file f fopen c temp...

關於效率的思考

今天在整理資料結構 樹的筆記時,產生了對效率的思考.敲了不到五分鐘,便感覺到效率的低下.想了想決定採用 截圖 黏貼的方式做了筆記,只花了1個小時不到的時間.你整理筆記的任務完成了嗎?你是偷懶嗎?不,我覺得不是.因為這些瑣碎的知識點是需要理解,或者記憶的.在任務量很大的情況下你手敲一遍除了手指發酸眼睛...