MySQL索引事務

2021-10-13 23:03:28 字數 1678 閱讀 4192

索引是一種特殊的檔案,包含著對資料表裡所有記錄的引用指標。

它的作用類似於書籍目錄,可用於快速定位、檢索資料。所以它可以極大的提高資料庫的效能。

要考慮對資料庫表的某列或某幾列建立索引,需要考慮以下幾點:

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資料庫自動...