一、索引
什麼是索引?為什麼要有索引?
索引相當於字典的音序表,如果要查某個字,如果不使用音序表,則需要從幾百頁中逐頁去查。索引在 mysql 中也叫做「鍵」,是儲存引擎用於快速找到記錄的一種資料結構。索引對於良好的效能非常關鍵,尤其是當表中的資料量越來越大時,索引對於效能的影響愈發重要。索引優化應該是對查詢效能優化最有效的手段了。善用索引能夠輕易將查詢效能提高好幾個數量級。
在建立表時建立索引,**如下所示:
create
table mytable(
id int
notnull
, username varchar(16
)not
null
,index myindex (username(16)));
在建立表之後建立索引,**如下所示:
create
index myindex on mytable(username(16)
);或者alter
table mytable add
index myindex(username)
檢視索引
show
index
from mytable
刪除索引
drop
index myindex on mytable;
或者alter
table mytable drop
index myindex;
通過 explain 分析 sql 是否使用到索引
explain
select
*from mytable where username =
'jack'
索引分類常見的索引型別有:主鍵索引、唯一索引、普通索引、全文索引、組合索引。
二、事務
在 mysql 中,事務的常規操作包括:開啟事務、提交事務與回滾事務
開啟事務的語法如下所示:
start
transaction;或者
begin
transaction
;
提交事務的語法如下所示:
commit
;
回滾事務的語法如下所示:
rollback
;
案例:
start
transaction
;-- 手動開啟事務
insert
into t_act values(3
,300);
-- 更新操作
commit
;-- 提交事務,commit 之後即改變底層資料庫資料
看到這個結果,似乎和直接執行插入一條記錄沒什麼不同。確實,在 mysql 中,預設情況下,事務是自動提交的,也就是說,只要執行一條 dml 語句就開啟了事務,並且提交了事務。
start
transaction
;-- 手動開啟事務
insert
into t_act values(4
,200);
-- 更新操作
rollback
;-- 回滾事務
從執行結果中可以看到,回滾事務會撤銷更新操作,**執行前後資料表中的資料沒有發生任何變化
事務四大特徵(acid)
事務的隔離級別有 4 個
樂觀鎖
樂觀鎖不是資料庫自帶的,需要我們自己去實現。樂觀鎖是指運算元據庫時(更新操作),想法很樂觀,認為這次的操作不會導致衝突,在運算元據時,並不進行任何其他的特殊處理(也就是不加鎖),而在進行更新後,再去判斷是否有衝突了。
悲觀鎖
mysql 中鎖的實現主要有兩種:共享鎖(s)與排它鎖(x),它們分別對應資料的讀和寫操作。共享鎖(s):也稱為讀鎖,允許事務讀取一行資料。例如事務 t 對資料物件 a 加上 s 鎖,則事務 t 可以讀 a但不能修改 a,其他事務只能再對 a 加 s 鎖,而不能加 x 鎖,直到 t 釋放 a 上的 s 鎖。這保證了其他事務可以讀a,但在 t 釋放 a 上的 s 鎖之前不能對 a 做任何修改。
排它鎖(x):也稱寫鎖,允許事務刪除或更新一行資料。例如事務 t 對資料物件 a 加上 x 鎖,事務 t 可以讀a 也可以修改 a,其他事務不能再對 a 加任何鎖,直到 t 釋放 a 上的鎖。
mysql索引,事務,鎖
索引就是用來優化查詢,加快查詢速度。索引是優化查詢的最有效手段 優勢 優化查詢加快檢索速度 根據索引分組和排序可以加快分組和排序 劣勢 索引本身也是表,在一定程度上會占用儲存空間 create table mytable id int not null,username varchar 16 not...
索引 事務 鎖
索引 一 索引的簡介 1.什麼是索引?概念 索引是用於快速找到記錄的一種資料結構,索引優化應該是對查詢效能優化最有效的手段了 索引的本質 索引是資料結構 可以簡單理解為 排好序的快速查詢資料結構 加速查詢 2.為什麼使用索引?簡單理解 優化查詢速度 索引優化應該是對查詢效能優化最有效的手段了,善用索...
mysql中的事務和鎖 MySQL中的事務和鎖
鎖 行級鎖select for update nowaitfalse,skip false 注意必須用在事物裡面 所有匹配的行將被鎖定,知道事務結束。這意味著可以通過鎖防止資料被其他事務修改。一般情況下如果其他事務鎖定了相關行,那麼本查詢將被阻塞,直到鎖被釋放。事務事務的四大特性 1.原子性 事務包...