数据库引擎InnoDB和myisam的区别和联系

2019-10-21 03:07 来源:未知

2、数据库的存储引擎,

临时表

  • 系统使用的(未超过限制使用momery临时表, 超过限制 使用myisam 临时表)
  • create temporary table 建立的临时表

详细解释转载于:https://www.cnblogs.com/avivahe/p/5427884.html

cpu选择

应用为计算密集型,应该使用更高的频率
应用的并发量高,则需要更多的核数

1、ENGINE=InnoDB 数据库存储引擎,DEFAULT 默认,CHARSET=utf8 数据库字符编码

适用场景

  • 非事务应用
  • 只读类应用
  • 空间类应用

myisam:读取速度比较快,不占用大批量资源,但是又两个缺点,1、不支持事物,2、容错不好。硬盘崩溃了,数据就没了,如果说坚持要用在那个关键程序,要通过其复制特性实时的去备份数据,,MySQL能够支持这样的备份应用程序。MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。

系统

mysql适合的操作系统
windows、FreeBSD、Solaris、linux

  • centos优化
    linux优化
  • 插件式存储引擎 存储引擎针对于表,而不是针对于库的
![](https://upload-images.jianshu.io/upload_images/7357680-3810dcef62fd9615.png)

mysql中engine=innodb和engine=myisam的区别

特性

  • innodb 是一种事务型存储引擎
  • 完全支持事务的acid特性
  • redo log 和 undo log redo log 实现事务持久性,undo log 未提交事务
  • innodb 支持行级锁,行级锁可以最大程度支持并发,行级锁是由存储引擎实现的

Innodb:它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,在电子银行中事务控制能力是非常重要的。支持COMMIT、ROLLBACK和其他事务特性。目前数据库表结构设计的时候一般都选择这种存储引擎。但是速度慢,占用磁盘空间比较多。

archive

CSV

myisam

myisam存储引擎由MYD和MYI组成

功能特点

  • 支持hash 等值查找
  • btree索引 范围查找
  • 所有字段的长度都是定长的,varchar(10). => char(10)
  • 不支持 text blog 大字段类型
  • 使用的是表级锁
  • 最大大小由 max_heap_table_size. 默认16mb 修改之后需要重建已存在的表

性能监控命令

show engine innodb status

文件系统存储特点:

  • 以文件方式存储
  • 所有的列 都是非空的
  • 不支持索引
  • 不适合大表 不适合在线处理
  • 可以直接对文件进行编辑

磁盘的配置和选择

  • 传统机械磁盘

读取过程:1)移动磁头到磁盘表面正确的位置上,2)等待磁盘旋转,使所需的数据在磁头之下,3)等待磁盘旋转过去,所有所需的数据被磁头读出
12称为访问时间,3传输速度

选择因素:磁盘容量,传输速度,访问时间,主轴转速,物理尺寸

  • raid机械磁盘 磁盘冗余队列的简称

  • ssd
    相比机械磁盘,可以加强随机读写性能,随机读的性能提升明显
    支持的更好的并发
    长时间密集写操作容易损坏ssd

  • 网络存储
    外部文件存储设备加载到服务器上的方法
    最适合用于数据库备份

内存

  • 一般来说通过增加内存,将数据缓存到内存中,从而提高数据吞吐性能
    瓶颈,如所有的数据都缓存到内存中了,在增加内存不会有性能的提升
    myisam 会将索引缓存到内存中
    数据通过操作系统缓存
    innodb 会同时在内存中缓存数据和索引

  • 内存的提升对于写会有提升,可以将多次写入改为一次写入

  • 内存的频率越高,速度越快

TAG标签:
版权声明:本文由澳门新浦金网站发布于数据库,转载请注明出处:数据库引擎InnoDB和myisam的区别和联系