一.建立索引
索引的分類:
1.新增primary key(主鍵索引):
alter tabletable_name
add primary key (column
)
2.新增unique(唯一索引) :
alter tabletable_name
add unique (column
)
3.新增index(普通索引) :
寫法一:alter tabletable_name
add index index_name (column
)
寫法二:create index index_name ontable_name
(column1
,column2
,column3
)
4.新增fulltext(全文索引) :
alter tabletable_name
add fulltext (column
)
5.新增多列索引:
寫法一:alter tabletable_name
add index index_name (column1
,column2
,column3
)
寫法二:create index index_name ontable_name
(column1
,column2
,column3
)
show index fromtable_name
;-- 查詢表索引
drop index index_name ontable_name
;-- 刪除索引
之後:
1.避免全表掃瞄
2.避免在where後用!=或<>符號
3.避免用in 或not in
4. 避免用在where子句中對字段null判空
5. 避免用函式表示式
6. 避免用or來連線條件
7. 避免在索引欄位用非打頭字元模糊查詢
8. 盡量用exists
9. 可用檢視加快查詢
mysql使用優化記錄
使用in語句,in的列表明確並且有限時,可以使用。因為此時搜尋引擎會使用索引,但in的是乙個查詢結果時,索引將會沒有作用,會查詢全表。例子 使用in查詢時,in的列表有限且明確 select from on auction where pid in 10,11,20 此時的執行計畫,會使用建立在pi...
mysql反查優化記錄
id name source 1客戶1 a渠道2 客戶1b渠道 3客戶2 a渠道4 客戶3a渠道 5客戶1 c渠道我現在的邏輯是根據傳進來的id查詢name,然後再根據name來查詢id 例如 傳進來id是1和3,根據這兩個id查到name值為客戶1和客戶2,然後根據這兩個name去查詢id,可得到...
mysql優化記錄2
上次優化完之後,發現又有其他比較慢的地方,就需要再次優化。這次優化主要是加索引解決的。以及刪除了一大部分資料。優化的過程中遇到了很多問題,比如線上加索引,線上刪除資料之類的,盡量做成指令碼,晚上去更新。因為公司的服務是兩台伺服器,主從伺服器。修改了任何一台,另一條是會在sql執行完成之後,進行主從同...