MYSQL 7 資料庫優化 索引

2021-09-26 02:13:00 字數 2110 閱讀 3846

索引型別:btree、hash

普通索引

唯一索引 unique index

主鍵索引

組合索引

全文索引 fulltext index

建立索引

create table table_name[col_name data type]

[unique|fulltext][index|key][index_name](col_name[length])[asc|desc]

unique|fulltext為可選引數,分別表示唯一索引、全文索引

index和key為同義詞,兩者作用相同,用來指定建立索引

col_name為需要建立索引的字段列,該列必須從資料表中該定義的多個列中選擇

index_name指定索引的名稱,為可選引數,如果不指定,預設col_name為索引值

length為可選引數,表示索引的長度,只有字串型別的字段才能指定索引長度

asc或desc指定公升序或降序的索引值儲存

索引型別

普通索引

-- 建立

alter table jobs add index index_salary_max(salary_max);

create index index_salary_max on jobs(salary_max);

create table table_name(

...index index_name (title(length))

); -- 刪除

alter table jobs drop index index_salary_max;

唯一索引

-- 建立

alter table jobs add unique(id);

create unique index unique_id on jobs(id);

主鍵索引

-- 建立

create table student(

id int not null auto_increment,

sname varchar(12) not null,

primary key(id)

);

組合索引

只有在查詢條件中使用了建立索引時的第乙個字段,索引才會被使用,遵循最左字首原則

alter table student add sage_sdept(sage,sdept);

全文索引

mysql全文檢索是利用查詢關鍵字和查詢列內容之間的相關度進行檢索,可以利用全文索引來提高匹配的速度。

select * from jobs

where match(com_name) against('上海網路科技****');

不用索引

explain … 檢視語句查詢方式

!= 會引起全表掃瞄

order by 會引起全表掃瞄

null 會引起全表掃瞄(可以 where num=0)

or 連線會引起全表掃瞄(可以 select…union select…)

like模糊查詢 會引起全表掃瞄

in 和 not in 會引起全表掃瞄(可以between…and…)

where 子句使用引數會引起全表掃瞄 where num=@num

where 子句對欄位進行表示式操作會引起全表掃瞄where num/2=100

where 子句對欄位進行函式操作會引起全表掃瞄where substring(num)

where 的=左側不要運算,否則無法正確使用索引

當復合索引時,多列索引採用最左原則,且不跳過索引中的列

exists代替in(看情況)

索引提高了select效率,但也降低了insert和update效率

適當用表變數替代臨時表

減少游標,游標效率差

一旦估計檢查的行數「太多」,範圍查詢優化將不會被使用。

索引列不應該作為表示式的一部分,即也不能在索引列上使用函式

盡量使用高選擇性索引

資料庫與Mysql 7

union 聯合 合併 將多條查詢語句的結果合併成乙個結果 語法 查詢語句1 union all 查詢語句2 union all 應用場景 要查詢的結果來自多個表,且多個表沒有直接的連線關係,但查詢的資訊一致 列數也要求一致 特點 1.要求多條查詢 2.要求多條查詢語句的 其查詢的每一列的型別和順序...

mysql7 資料庫的匯出匯入

匯出整個資料庫 注 這個是在沒有登陸mysql下,在控制台進行的操作 密碼可以不用輸,在回車之後輸入也可以 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 mysqldump uroot proot student student.sql匯出乙個表 一般不用 mysqldump u 使...

mysql資料庫優化索引 mysql資料庫索引調優

一 mysql索引 1 磁碟檔案結構 innodb引擎 frm格式檔案儲存表結構,ibd格式檔案儲存索引和資料。myisam引擎 frm格式檔案儲存表結構,myi格式檔案儲存索引,myd格式檔案儲存資料 2 mysql資料庫資料範問原理 innodb btree 1 ibd檔案中主鍵構建b tree...