MySQL高階 索引 事務和鎖的了解

2021-10-21 10:47:29 字數 1795 閱讀 5714

一、索引

(1)什麼是索引?

1:舉例來講就是:索引相當於字典的音序表,如果要查某個字,如果不使用音序表,則需要從幾百頁中逐頁去查。

(2) 索引的優劣勢

(1)索引的 優勢:可以快速檢索,減少 i/o 次數,加快檢索速度;根據索引分組和排序,可以加快分組和排序。

(2)索引的 劣勢:索引本身也是表,因此會占用儲存空間,一般來說,索引表占用的空間是資料表的 1.5 倍;索引表的維護和建立需要時間成本,這個成本隨著資料量增大而增大;構建索引會降低資料表的修改操作(刪除,

新增,修改)的效率,因為在修改資料表的同時還需要修改索引表。

(3)如何建立、檢視、刪除索引

1)建立索引

create table mytable(

id int not null,

username varchar(16)not null,

index myindex (username(16))-- index 表示索引,myindex 表示定義的索引名稱。

);

2)檢視索引

-- -- 檢視表中的索引show是檢視命令  mytable 是表名;

show index from mytable;

3)刪除索引 兩種方法

--  刪除索引 語法 drop index 索引的名字 on 表名;

drop index myindex on mytable;

-- alter table 表名 drop index 索引的名字 ;

alter table mytable drop index myindex;

-- 語法分析:**中的 myindex 是建立索引時定義的索引名稱。

4)通過 explain 命令檢視索引使用情況,**如下所示:

explain select * from mytable where username = 'jack'
二、 事務

1) 什麼是事務?

事務(transaction):乙個最小的不可再分的工作單元;通常乙個事務對應乙個完整的業務(例如銀行賬戶轉賬業務,該業務就是乙個最小的工作單元)。

2)在 mysql 中,事務的常規操作包括:開啟事務、提交事務與回滾事務。

開啟事務

開啟事務的語法如下所示:

start transaction;

或者begin transaction;

提交事務

提交事務的語法如下所示:

commit;

回滾事務

3) 回滾事務

回滾事務的語法如下所示

rollback;

手動開啟事務,向 t_act 表中插入一行記錄,提交事務。**如下所示:

start transaction;-- 手動開啟事務

insert into t_act values(3,300); -- 更新操作

commit;-- 提交事務,commit 之後即改變底層資料庫資料

select * from t_act;

手動開啟事務,向 t_act 表中插入一行記錄,回滾事務。**如下所示:

start transaction;-- 手動開啟事務

insert into t_act values(4,200); -- 更新操作

rollback;-- 回滾事務

select * from t_act;

MySQL高階 事務和鎖

什麼是事務 一件事就可以事務,事務就是操作過程合集統稱 事務的特性 原子性 一段事務中,要麼全部完成,要麼都不完成 隔離性 兩個客戶同時操作同樣的事務的解決方案,應用及其廣泛,所以針對以上情況出現了事務的隔離級別 讀未提交 read uncommitted 讀提交 read committed 可重...

mysql索引,事務,鎖

索引就是用來優化查詢,加快查詢速度。索引是優化查詢的最有效手段 優勢 優化查詢加快檢索速度 根據索引分組和排序可以加快分組和排序 劣勢 索引本身也是表,在一定程度上會占用儲存空間 create table mytable id int not null,username varchar 16 not...

索引 事務和鎖

一 索引 1 索引簡介 什麼是索引?一般的應用系統,讀寫比例在 10 1 左右,而且插入操作和一般的更新操作很少出現效能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些複雜的查詢操作,因此對查詢語句的優化顯然是重中之重。說起加速查詢,就不得不提到索引了。為什麼要有索引?索引在 mys...