經常使用引擎+存儲過程

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.加強使用的安全性,對存儲過程進行權限限制,避免非受權用戶對數據的訪問。

缺點:

調式麻煩,可移植性不靈活(依賴於具體的數據庫)。

相關文章
相關標籤/搜索