1.myisam,innodb和memory的区别如下:

2:InnoDB存储引擎
2.1:InnoDB具有事务,回滚,崩溃修复能力和多版本并发的事务安全
2.2:关于InnoDB的auto_increment列:
2.2.1:InnoDB支持自动增长列,此列不能为空,且值必须唯一
2.2.2:此列必须为主键。插入时,不指定值,默认是自增都的值。指定0或者NULL时,也 是自增后的值。指定合法且不存在的值,则此后的自动从该值开始
2.3:InnoDB中的Foreign Key:
InnoDB支持外键。外键所在表通常称为子表。所依赖表称为父表。且父表中,被子表关联的字段必须为父表的主键。
(外键:可以简单的理解为:当对父表的数据进行更新,删除,添加时,子表的数据也会随之变化。例子很多,此处不举例)
2.4:InnoDB的存储引擎及其优缺点:
InnoDB存储引擎的存储格式有三个文件:
.frm表结构文件,此文件存放表创建时的字段定义等信息。
表的数据文件,存放在innodb_data_home_dir目录下,
表的索引文件,存放在innodb_data_file_path目录下
InnoDB存储引擎具有良好的ACID特性。
InnoDB的缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。
2.5:InnoDB的理想使用场合:
高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。
3:MYISAM存储引擎:
3.1:MYISAM存储引擎表的存储有三个文件:
.frm文件,存储表的结构
.myd文件,存储表的数据
.myi文件,存储表的索引
3.2:MYISAM存储引擎的存储格式
3.2.1:静态型
表的所有列都是静态的(定长的)。这种情况下,维护和访问预定义格式存储的数据需要的开销很低。但是,需要的空间会更多,原因是,数据在存储的时候,使 用每个列的最大空间来存储,有浪费的空间。当然,磁盘这个都不是问题。
3.2.2:动态型
指标的列中有动态型的列(不定长的)。优点是:使用空间少。缺点是:更新数据时,需要移动数据,产生内部碎片的同时,也降低了维护和访问的效率。
对于这个问题,我们可以:(1)尽量的使用定长字段(2)使用optimize table语句,整理表中的碎片
3.2.3:压缩型:
针对应用程序的声明周期中,只读的数据表,我们可以通过:myisampack工具转化为MYISAM压缩表,以减少使用的磁盘空间
3.4:MYISAM存储引擎的优缺点:
优点:占用空间小,处理速度快(相对InnoDB来说)
确定:不支持事务的完整性和并发性
4:Memory存储引擎
4.1:Memory存储引擎的文件存储形式
Memory存储引擎也会再磁盘上形成一个 .frm的表结构文件,只是表的数据件并不以文件的形式存放在磁盘上。鉴于其数据存放在内存里,因此,访问速度更快。但需 要考虑的是:内存上数据的持久性。
4.2:Memory存储引擎的索引类型
默认的是哈希索引,也支持BTree索引
4.3:Memory存储引擎的数据存储周期
数据存放在内存上,一旦服务器关机,数据将不再存在
4.4:Memory存储引擎的优缺点:
Memory存储引擎不支持变长表列
MySQL4.1.0之前,不支持auto_increment列
4.5:Memory存储引擎的使用场合
速度要求快的,临时数据
丢失以后,对项目整体没有或者负面影响不大的时候。

最新文章

  1. Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the co
  2. BZOJ2982——combination
  3. jQuery元素查找方式
  4. bug_ _ _常见的bug??
  5. unset之讲解
  6. MsoShapeType /InlineShape枚举
  7. Library vector Type
  8. MFC 多线程
  9. SSH方式登录github出现Permission denied (publickey)
  10. 什么是优先级队列(priority queue)?
  11. tomcat 发布webService
  12. S.O.L.I.D五大原则之单一职责SRP
  13. Nginx代理外网映射
  14. 《高级软件测试》JIRA使用手册(二)JIRA安装
  15. Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)
  16. ESP8266产品ID
  17. 结构体(struct)
  18. Maven教程1(介绍安装和配置)
  19. webuploader
  20. angularjs 1.x lazyloading

热门文章

  1. 关于神经网络算法的 Python例程
  2. GITBOOK/HEXO TRAVIS GITHUB-PAGES 博客搭建
  3. public interface Sampler extends Serializable, TestElement
  4. 记:cloudstack--gluster主存储上的一个文件损坏导致SSVM启动失败
  5. 10.Redis 性能测试
  6. 获取用户的相关请求信息, 以及包括请求头 request.environ
  7. 【转】运输层TCP协议详细介绍
  8. C#与U3D中字符串尾0
  9. PHP - 脚本退出(包括异常退出),执行指定代码
  10. 解剖Nginx·模块开发篇(4)模块开发中的命名规则和模块加载与运行流程