索引是一種特殊的檔案,包含著對資料表裡所有記錄的引用指標。
它的作用類似於書籍目錄,可用於快速定位、檢索資料。所以它可以極大的提高資料庫的效能。
要考慮對資料庫表的某列或某幾列建立索引,需要考慮以下幾點:
1.1 使用
在建立主鍵約束(primary key)、唯一約束(unique)、外來鍵約束(foreign key)時,會自動建立對應列的索引。
show
index
from student;
create
index idx_classes_name on classes(name)
;
drop
index idx_classes_name on classes;
索引儲存的資料結構主要為b+樹,及hash的方式。
什麼是事務?事務是邏輯上的一組操作,例如銀行轉賬操作,這組操作包括 從你的賬戶扣除轉賬金額和從對方的賬戶存入轉賬金額,要麼全部執行成功,要麼全部執行失敗。
事務的使用
(1)開啟事務:start transaction;
(2)執行多條sql語句
(3)回滾或提交:rollback/commit;
rollback即是全部失敗,commit即是全部成功。
測試案例:
建立測試表:
drop
table
ifexists accout;
create
table accout(
id int
primary
keyauto_increment
, name varchar(20
)comment
'賬戶名稱'
, money decimal(11
,2)comment
'金額');
insert
into accout(name, money)
values
('張三'
,5000),
('李四'
,1000
);
start
transaction
;-- 張三賬戶減少2000
update accout set money=money-
2000
where name =
'張三'
;-- 李四賬戶增加2000
update accout set money=money+
2000
where name =
'李四'
;commit
;
假如我們在轉賬時當系統從張三這邊已經扣除了2000元,但是在執行李四賬戶增加2000元時由於網路波動或者其他一些原因導致這一語句執行失敗,導致張三這邊已經扣除了2000,但是李四這邊卻沒有收到轉賬金額,那麼這2000元就被系統黑吃了。
事務就是為了解決這一問題,當我們開啟事務直到事務結束,中間所執行的多條sql語句,假如有一條語句執行失敗,那麼從事務開始到失敗之前的語句全部失效,然後我們重新提交,直到這些sql語句全部執行成功,然後事務結束,資料庫將資料存入,那麼就可以避免這一類似的問題出現。
mysql索引和事務 MySql索引和事務
mysqlde 索引 目的 是為了加快查詢的速度,避免順序查詢,但是拖慢了插入和刪除的速度.應用在在經常查詢,很少少出插入的場景中.結構 b 樹,n叉搜尋樹,使用鏈式的結構把每一層的節點連線在一起,葉子節點中儲存資料,非葉子節點輔助查詢.主鍵索引和其他索引的不一樣 主鍵索引葉子節點儲存一條一條的資料...
mysql事務索引 mysql事務索引和許可權管理
pysql sql注入 太相信使用者輸入的所有的資料。解決方法 1.自己手動去判斷轉義使用者輸入的資料2.不要拼接sql語句,使用pymysql 的execute方法,防止sql的注入。事務 一組操作,要麼都成功要麼都失敗 四大特性 1.原子性 原子是最小的粒度,所以說一組操作要麼都 成功要麼都失敗...
MySQL事務 索引
一 事務處理步驟 set autocommit 0 關閉mysql的自動提交 start transaction 開始乙個事務,標記事務的起點 commit 提交乙個事務給資料庫 rollback 將事務回滾,所有commit中的操作將取消 set autocommit 1 還原mysql資料庫自動...