MySQL數據庫(5)
事務:
事務四大特性(簡稱ACID):原子性(Atomicity);一致性(Consistency);隔離性(Isolation);持久性(Durability)
開啟事務: begin;
當事務打開的時候,在事務內部進行的邏輯操作不會對表本身有任何影響,只有在事務提交的時候才會顯示出來.
事務回滾: rollback;
在事務沒有提交之前,使用rollback可以將上一條邏輯運算給pass掉,即上一條邏輯操作不會產生任何作用.
提交事務: commit;
在提交事務之後,在事務內執行的邏輯操作會對表內數據進行修改
索引:
索引是什麽:
索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含著對數據表裏所有記錄的引用指針。更通俗的說,數據庫索引好比是一本書前面的目錄,能加快數據庫的查詢速度
索引目的:
索引的目的在於提高查詢效率,可以類比字典,如果要查“mysql”這個單詞,我們肯定需要定位到m字母,然後從下往下找到y字母,再找到剩下的sql。如果沒有索引,那麽你可能需要把所有單詞看一遍才能找到你想要的,如果我想找到m開頭的單詞呢?或者ze開頭的單詞呢?是不是覺得如果沒有索引,這個事情根本無法完成?
要註意的是,建立索引會占用磁盤空間,建立太多的索引將會影響更新和插入的速度,因為它需要同樣更新每個索引文件。對於一個經常需要更新和插入的表格,就沒有必要為一個很少使用的where字句單獨建立索引了,對於比較小的表,排序的開銷不會很大,也沒有必要建立另外的索引。
索引類型: 主鍵,唯一,普通,聯合
數據庫引擎:
InnoDB:支持事務處理,支持外鍵,並發控制。如果需要對事務的完整性要求比較高(比如銀行),要求實現並發控制(比如售票),那選擇InnoDB有很大的優勢。如果需要頻繁的更新、刪除操作的數據庫,也可以選擇InnoDB,因為支持事務的提交(commit)和回滾(rollback)。
MyISAM:插入數據快,空間和內存使用比較低。如果表主要是用於插入新記錄和讀出記錄,那麽選擇MyISAM能實現處理高效率。如果應用的完整性、並發性要求比較低,也可以使用。
MEMORY:所有的數據都在內存中,數據的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對數據的安全性要求較低,可以選擇MEMOEY。它對表的大小有要求,不能建立太大的表。所以,這類數據庫只使用在相對較小的數據庫表。
MySQL數據庫(5)