mysql 存储引擎 myisam innodb 区别
2015-12-23 22:36
621 查看
虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了。可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引擎呢?下面我们分别来看两种存储引擎的区别。
MySQL存储引擎MyISAM与InnoDB的区别
一、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。
二、MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及设计到安全性就高的应用
三、InnoDB支持外键,MyISAM不支持
四、MyISAM是默认引擎,InnoDB需要指定
五、InnoDB不支持FULLTEXT类型的索引
六、InnoDB中不保存表的行数,如select count(*) from table时,InnoDB需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时MyISAM也需要扫描整个表
七、对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引
八、清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
九、InnoDB支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like '%lee%'
MySQL存储引擎MyISAM与InnoDB的区别
一、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。
二、MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及设计到安全性就高的应用
三、InnoDB支持外键,MyISAM不支持
四、MyISAM是默认引擎,InnoDB需要指定
五、InnoDB不支持FULLTEXT类型的索引
六、InnoDB中不保存表的行数,如select count(*) from table时,InnoDB需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时MyISAM也需要扫描整个表
七、对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引
八、清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
九、InnoDB支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like '%lee%'
相关文章推荐
- 远程连接MySQL,防火墙阻止访问,解决方法
- MAC上安装mySQL5.7后密码过期处理
- mysql 数据库 局域网电脑访问其他电脑的数据库
- MySQL数据库+jsp+servlet实现分页查询
- ubuntu14.04安装mysqlserver数据库
- mysql kill thread
- MySql(开源地址)
- mysql索引优化的总结
- mysql select语句执行顺序
- mysql创建用户---命令小结
- MySQL 5.6 & 5.7最优配置文件模板
- mysql修改表、字段、库的字符集
- Mysql 实现 三目运算判断
- MySQL之权限管理
- MySQL5.7.10配置和使用
- MYSQL ERROR CODE 错误编号的意义
- MySQL主从配置
- MySQL 5.6.19主从server-id不生效,The server is not configured as slave
- mysql 1067 进程意外终止
- MySQL主从复制