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個小時不到的時間.你整理筆記的任務完成了嗎?你是偷懶嗎?不,我覺得不是.因為這些瑣碎的知識點是需要理解,或者記憶的.在任務量很大的情況下你手敲一遍除了手指發酸眼睛...