• mysql存储引擎mysiam和innodb


    一  mysiam存储引擎

      1.1.1 存储引擎的介绍

    mysql中的数据用各种不同的技术存储在文件(或者内存中)。这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不用的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。这些不同的技术以及配套的相关功能在mysql中被称为存储引擎。
    mysql提供了多个不同的存储引擎,可以预先设置 或者在mysql服务器中启用。根据实际情况需要还可以分别选择适用于服务器,数据库或者表格的存储引擎,以便在后续检索这些信息等操作过程中提供最大的灵活性。例如,研究大量临时数据时,可以选择内存存储引擎,能够在内存中存储所有的表格数据,也可以选择支持事务处理的数据引擎,以确保事务处理不成功时数据能够回退。可以看得出mysql的核心就在其存储引擎上。
    在进行熟悉存储引擎之前,先来了解mysql的体系结构,这是在使用引擎时很重要的一环。如图是mysql体系架构:

    从这个体系结构中,可以清楚的看出mysql是由sql接口,解析器,优化器,缓存,存储引擎组成。
    1.Connectors:连接组件
    2.Enterprise Management Service & Utilities:管理服务和控制组件
    3.Connection Pool: 连接池组件
    4.SQL Interface: SQL接口组件
    5.Parser 查询分析器组件
    6.Optimizer:优化器组件
    7.Caches & Buffers:缓存组件
    8.Pluggable Storage Engines:插件式存储引擎
    9.File System:文件系统
    10. File & Logs:存储文件和日志

      从图中可以看出来,mysql提供了一系列标准的管理和服务支持,这些标准和存储引擎无关,是每个数据库本身所必须的,如sql Interfacwe,Parser,Optimizer等。而存储引擎时底层的物理结构的实现,每个开发者都可以按照自己的意愿来开发或者是修改存储引擎的内容。

      mysql支持插件式的表存储引擎,这种独有的插件式体系架构,让存储引擎有了依赖于应用的多样性。开发人员能根据应用的不同特点,选择合适的存储引擎;如果存储引擎不能满足要求的话,还可以定制适合自己应用的存储引擎。

      mysql中存储引擎处于文件系统之上,在数据保存在数据文件之前会先传输到存储引擎,然后按照各个存储引擎的存储格式进行数据存储。使用这种存储引擎的优点在于,仅仅需要提供特殊应用所需的特性即可;数据库中的系统开销较小;具有更有效和更高效的数据库性能。

      1.1.2 myisam的特点

      1.myisam的介绍

    myisam存储引擎是mysql关系数据库系统5.5版本之前默认的存储引擎,他的前身是ISAM。I它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,不支持事务处理,也不能容错。如果硬盘崩溃了,数据文件就无法恢复。如果正在把ISAM用在关键任务应用程序里,就必须经常备份所有的实时数据,通过其复制特性,mysql能够支持这样的备份应用程序。
    myisam管理非事务表,是mysql的isam扩展格式。除了提供isam里所没有的索引和字段管理的大量功能,mysiam还使用一种表格锁定的机制,来优化多个并发的读写操作。myisam提供高速存储和检索,以及全文搜索能力,受到web开发的青睐,因为在开发过程中需要进行大量的数据读写操作。

      2.myisam的特点

      myisam对数据读取有非常好的支持,myisam存储引擎的一些特点如下:

    1.不支持事务,需要事务支持的系统不能用myisam作为存储引擎
    2.表级锁定形式,数据在更新时锁定整个表
    3.数据库在读写过程中相互阻塞
        在数据写入的时候阻塞用户对数据的读取
        在数据读取的过程中阻塞用户写入数据
    4.可以通过key_buffer_size来设置缓存索引,提高访问的性能,减少磁盘io的压力
    5.使用myisam存储引擎进行吧数据的单独写入或读取,速度较快且占用资源相对较少
    6.myisam存储引擎不支持外键约束,只支持全文检索。
    7.每个myisam在磁盘上存储成三个文件。每一个文件的名字均已表的名字开始,扩展名指出文件类型:
        .frm文件存储表定义
        数据文件的扩展名为:.MYD(MYData)
        索引文件的扩展名为:.MYI(MYIndex)

     

    二 innodb存储引擎

      2.2.1 innodb特点介绍

    innodb存储引擎不同于myisam存储引擎,能够支持事务安全表(ACID兼容),具有提交,回滚和崩溃恢复的能力。innodb支持行级锁定,并且可以在SELECT语句中提供一个与Oracle风格类似的非锁定读,也支持FOREIGN KEY强制,种种特性使innodb存储引擎的多用户部署和性能得以提升。innodb存储引擎还支持sql查询中将innodb类型的表与其他mysql的表类型混合使用
    对innodb的特点总结如下:
    1.支持事务,支持四个事务隔离级别
    2.行级锁定,但是全表扫描仍然会是表级锁定
    3.读写阻塞与事务的隔离级别相关
    4.具有非常高效的缓存特性,能缓存索引,也能缓存数据
    5.支持分区,表空间
    6.支持外键约束,mysql5.5以前不支持全文索引,5.5版本之后支持
    7.适合对硬件资源要求比较高的场合
    生前无需久睡,死后自会长眠,努力解决生活中遇到的各种问题,不畏将来,勇敢面对,加油,你是最胖的,哈哈哈
  • 相关阅读:
    jQuery动画(带参数)
    ajax是什么
    jQuery遍历(3)
    jQuery遍历(2)
    jQuery遍历(1)
    javascript错误处理
    导航菜单的实现
    bootstrap环境搭建
    jQuery动画效果
    MVVM模式下WPF动态绑定展示图片
  • 原文地址:https://www.cnblogs.com/panshao51km-cn/p/12720620.html
Copyright © 2020-2023  润新知