mysql索引和事務 MySql索引和事務

2021-10-18 14:05:22 字數 1066 閱讀 5697

mysqlde 索引:目的:是為了加快查詢的速度,避免順序查詢,但是拖慢了插入和刪除的速度.,應用在在經常查詢,很少少出插入的場景中.

結構:b+樹,n叉搜尋樹,使用鏈式的結構把每一層的節點連線在一起,葉子節點中儲存資料,非葉子節點輔助查詢.

主鍵索引和其他索引的不一樣

主鍵索引葉子節點儲存一條一條的資料,借助主鍵查詢,一步到位直接查詢到結果.

其他索引儲存的是主鍵的id先根據索引找到主鍵的id,再拿id在主鍵索引中查詢.

事務:事務的乙個典型應用就是銀行轉賬.

事務就是一組操作的集合.

事務的四個基本特性

1.原子性:事務是不可再分的了,其中包含的操作要麼完全正確的執行,要麼一次都不執行.

2.一致性:事務執行前後,保持合法性.

3.永續性:事務一旦被執行完,對於資料庫的改變是永修性的.對後面的操作是沒有任何影響的.

4.隔離性:多個事務執行的時候是併發執行的,事務的內部操作和其他事務是隔離的.

隔離性在併發過程中的一些問題.

1.髒讀:值得是在編寫**的時候,我們從中使用了乙個屬性元素,之後再**提交的使用有刪除了這個屬性元素,此時同學在讀**的時候產生的髒讀的問題讀到了髒的資料.

解決思路:此時我們對隔離性沒有過多的要求,為了避免髒讀我們在寫入的時候加入鎖,可以避免髒讀.(提高了隔離性,降低了併發).

2.不可復讀性:乙個事務中讀取兩次結果不相同.

我在寫的**提交了之後,同學可以讀取**,但是我有改寫了**,同學在讀取的時候**改變了,

解決思路:上面我們對寫入操作進行了加鎖,避免了髒讀,但是不能避免不可重複度,所以我們在讀取操作中加入鎖操作,可以避免不可從復性.(提高了隔離性,降低了併發性).

3.幻讀:對多個事務進行讀取的時候結構集不相同.

例如:先頭我對studentzhege類進行了讀加鎖,但是現在我對soret進行操作.讀取的時候有的同學可以讀到soret這個類,有的同學讀取不到.

解決思路:為了解決幻讀,我們嚴格執行"序列化",同學們在讀取**的時候老師休息,不可以更改**,同學休息的時候老師在去更改**.這樣子並行就完全沒有了,直接實行序列化.隔離性最高,多個事務之間完全沒有任何影響.

mysql事務索引 mysql事務索引和許可權管理

pysql sql注入 太相信使用者輸入的所有的資料。解決方法 1.自己手動去判斷轉義使用者輸入的資料2.不要拼接sql語句,使用pymysql 的execute方法,防止sql的注入。事務 一組操作,要麼都成功要麼都失敗 四大特性 1.原子性 原子是最小的粒度,所以說一組操作要麼都 成功要麼都失敗...

mysql 索引和事務

索引 索引就類似於書籍的目錄,通過索引,可以提高表中資料的查詢速率 作用 快速定位,檢索資料 使用場景 1 適用於海量資料進行條件查詢 2 適用於查詢經常的依據列,這些列一定很少進行修改操作 3 索引會占用額外的磁碟空間 盡量避免給不定長字串的字段設定索引字段 索引的使用事務 事務就是邏輯上的操作原...

MySql索引和事務

為什麼要使用索引 索引的優劣 create table mytable id int not null,username varchar 16 not null,index myindex username 16 create index 索引名 on 表名 字段 create index myin...