zoukankan      html  css  js  c++  java
  • Mysql数据库引擎

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。但MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快。另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。可以根据数据表不同的用处是用不同的存储类型。
    InnoDB 是 MySQL 上第一个提供外键约束的引擎,除了提供事务处理外,InnoDB 还支持行锁,提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。
    InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最有效率的。
    InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 有它自己的缓冲池,能缓冲数据和索引,InnoDB 还把数据和索引存放在表空间里面,可能包含好几个文件,这和 MyISAM 表完全不同,在 MyISAM 中,表被存放在单独的文件中,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB。
    InnoDB不支持FULLTEXT类型的索引。LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like "%aaa%"。


    MYSQL建表时,如果不指定数据库表的类型,会默认为MyISAM型数据库,在建表语句中如果指定ENGINE=InnoDB则数据库引擎则会是InnoDB类型。
    一般情况下,指定好数据库引擎后,只要操作正确,数据库引擎是不会变化的,但是如果出现以下操作不当的情况,数据库引擎就会发生变化:
    1、强制kill数据库;
    2、数据库的log和实际数据不一致;

  • 相关阅读:
    webpack 代码拆分,按需加载
    Linux 安装 node
    H5项目常见问题及注意事项
    低耦合,高内聚。实乃至理名言
    Generator 函数学习笔记
    async 函数学习笔记
    JavaScript 中的 Thunk 函数
    Promise 学习笔记
    vb.net WIN32API 获取listview的值
    vb WIN32 API获取syslistview行数
  • 原文地址:https://www.cnblogs.com/babybluevino/p/3881085.html
Copyright © 2011-2022 走看看