常用引擎+存储过程

一、常用引擎

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.增强使用的安全性,对存储过程进行权限限制,避免非授权用户对数据的访问。

缺点:

调式麻烦,可移植性不灵活(依赖于具体的数据库)。

 

posted on 2018-03-26 16:23  二十年后20  阅读(168)  评论(0编辑  收藏  举报

导航