索引型別: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...