mysql優化記錄

2021-10-10 23:28:31 字數 1219 閱讀 9286

一.建立索引

索引的分類:

1.新增primary key(主鍵索引):

alter tabletable_nameadd primary key (column)

2.新增unique(唯一索引) :

alter tabletable_nameadd unique (column)

3.新增index(普通索引) :

寫法一:alter tabletable_nameadd index index_name (column)

寫法二:create index index_name ontable_name(column1,column2,column3)

4.新增fulltext(全文索引) :

alter tabletable_nameadd fulltext (column)

5.新增多列索引:

寫法一:alter tabletable_nameadd 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執行完成之後,進行主從同...