经常使用引擎+存储过程

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

缺点:

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

相关文章
相关标签/搜索