1、經常使用引擎sql
1.MyIsam數據庫
不支持事務,高性能,查詢速度快,不支持外鍵,支持全文索引,容許沒有主鍵,內置一個計數器,count(*)能夠直接返回行數,不用遍歷,MySQL默認存儲引擎。安全
採用表級鎖,開銷小,加鎖快,不會出現死鎖,鎖定粒度最大,發生鎖衝突的機率最高,併發度最低。服務器
採用非聚簇索引。網絡
插入17個數據,刪除15,16,17時,重啓插入數據,ID是18.併發
2.Innodb模塊化
適用於更新密集型,支持事務,自動災難恢復,支持外鍵,支持全文索引,必須有主鍵,count(*)須要遍歷計數。性能
支持行級鎖(默認)和表級鎖,開銷大,加鎖慢,會出現死鎖,鎖定粒度最小,發生鎖衝突的機率最小,併發度最高。spa
採用聚簇索引。設計
插入17個數據,刪除15,16,17時,重啓插入數據,ID是15.
3.Memory
出發點是速度,採用的邏輯存儲介質是內存。
4.Merge
一組MyIsam表的組合
2、存儲過程
存儲過程:是一些編譯好了的sql語句,這些sql語句像一個方法同樣實現一些功能(對單表或多表的增刪改查),而後再給這個代碼塊取一個名字,在用到這個功能的時候調用便可。
優勢:
1.由於SQL已經預編譯了,因此運行速度較快。
2.在服務器端運行,減小客戶端壓力。
3.容許模塊化程序設計,即只須要建立一次過程,以後在程序中就能夠調用該過程任意次。
4.減小網絡流量,客戶端調用存儲過程只須要傳遞存儲過程名和相關參數便可,與傳輸SQL語句的數據量少不少。
5.加強使用的安全性,對存儲過程進行權限限制,避免非受權用戶對數據的訪問。
缺點:
調式麻煩,可移植性不靈活(依賴於具體的數據庫)。