常用引擎+存储过程
一、常用引擎
1.MyIsam
不支持事务,高性能,查询速度快,不支持外键,支持全文索引,允许没有主键,内置一个计数器,count(*)可以直接返回行数,不用遍历,MySQL默认存储引擎。
采用表级锁,开销小,加锁快,不会出现死锁,锁定粒度最大,发生锁冲突的概率最高,并发度最低。
采用非聚簇索引。
插入17个数据,删除15,16,17时,重启插入数据,ID是18.
2.Innodb
适用于更新密集型,支持事务,自动灾难恢复,支持外键,支持全文索引,必须有主键,count(*)需要遍历计数。
支持行级锁(默认)和表级锁,开销大,加锁慢,会出现死锁,锁定粒度最小,发生锁冲突的概率最小,并发度最高。
采用聚簇索引。
插入17个数据,删除15,16,17时,重启插入数据,ID是15.
3.Memory
出发点是速度,采用的逻辑存储介质是内存。
4.Merge
一组MyIsam表的组合
二、存储过程
存储过程:是一些编译好了的sql语句,这些sql语句像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用即可。
优点:
1.因为SQL已经预编译了,所以运行速度较快。
2.在服务器端运行,减少客户端压力。
3.允许模块化程序设计,即只需要创建一次过程,之后在程序中就可以调用该过程任意次。
4.减少网络流量,客户端调用存储过程只需要传递存储过程名和相关参数即可,与传输SQL语句的数据量少很多。
5.增强使用的安全性,对存储过程进行权限限制,避免非授权用户对数据的访问。
缺点:
调式麻烦,可移植性不灵活(依赖于具体的数据库)。