简述网站开发的步骤,网站建设公司的那些坑,定制开发app软件,住房和城乡建设部执业资格注册中心网站文章目录 查看引擎信息常用引擎介绍InnoDBMyISAMMEMORY存储引擎的选择 数据库存储引擎是数据库底层组件#xff0c;数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等#xff0c;使用不同的存储引擎#… 文章目录 查看引擎信息常用引擎介绍InnoDBMyISAMMEMORY存储引擎的选择 数据库存储引擎是数据库底层组件数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等使用不同的存储引擎还可以获得特定的功能。 mysql提供多个不同的存储引擎包括处理事务安全表的引擎和非事务安全表的引擎。在mysql中不需要在整个服务器中使用同一种存储引擎针对具体的要求可以对不同的表使用不同的存储引擎。 mysql支持的存储引擎有InnoDB/MyISAM/MEMORY/MERGE/ARCHIVE/FEDERATED/CSV/BLACKHOLE等。 查看引擎信息
可以使用show engines查看系统中的引擎信息。
mysql show engines;常用引擎介绍
InnoDB
InnoDB存储引擎为事务弄数据库的首选引擎支持事务安全表支持行锁和外键。MySQL 5.5.5后它也是默认存储引擎。其特性如下
具有提交、回滚和崩溃恢复能力的事务安全性其锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。在SQL查询中可以自由将InnoDB类型的表与其他类型的表混合起来。它是为处理巨大数据量的最大性能设计。其CPU效率可能是其他基于磁盘的关系数据库引擎所不能匹敌的。它完全与MySQL服务器整合在主内存中缓存数据和索引而维持其自己的缓冲池。InnoDB表可以是任意尺寸的即便是文件尺寸被限制为2GB也不影响。而在MyISAM表中每个表被存在分离的文件中。它支持外键完整性约束。存储数据时每张表的存储按主键顺序存放如果没有显示定义主键InnoDB会为每一行生成一个6字节的ROWID并以此作为主键。它被用在众多需要高性能的大型数据库站点上。InnoDB不创建目录。
MyISAM
MyISAM基于ISAM存储引擎并对其进行扩展。它是在Web、数据仓储和其他应用环境下经常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度但它不支持事务。在MySQL5.5.5之前版本 MyISAM是默认存储引擎。其主要特点如下
大文件达63位文件长度。当把删除、更新及插入操作混合使用的时候动态尺寸的行产生更少的碎片。每个表最大索引数是64这可以通过重新编译来改变。每个索引最大的列是16。最大的键长度是1000字节这也可以通过编译来改变。BLOB和TEXT列可以被索引NULL值被允许在索引的列中。这个值占每个键的0-1个字节所有数字键值以高字节优先被存储以允许一个更高的索引压缩每个MyISAM类型的表都有一个AUTO_INCREMENT的内部列当执行INSERT和UPDATE时该列被更新所以MyISAM表的AUTO_INCREMENT列更新比InnoDB更快可以把数据文件和索引文件放在不同目录每个字符列可以有不同的字符集有VARCHAR的表可以固定或动态记录长度VARCHAR和CHAR列可以多达64KB 使用MyISAM创建数据库时将生成三个文件。文件名以表名开始并以不同的扩展名来指出文件类型.frm - 文件存储表定义.MYD(MYData) - 数据文件.MYI(MYIndex) - 索引文件
MEMORY
Memory引擎将表中的数据存储到内存中为查询和引用其他表数据提供快速访问。其特性如下
每个表可以有32个索引每个索引16列以及500字节的最大键长度存储引擎执行HASH和BTREE索引可以在一个表中有非唯一键使用一个固定的记录长度格式不支持BLOB和TEXT列支持AUTO_INCREMENT列和对可包含NULL值的列的索引在所有客户端之间共享当MEMORY表和服务器空闲时MySQL会在内存中创建表共享当不再需要表内容时想释放被表使用的内存应该执行DELETE FROM或TRUNCATE TABLE命令或者使用DROP TABLE直接删除整个表
存储引擎的选择
不同的存储引擎特点不同为了在实际应用中作出选择先需要考虑每一个存储引擎提供了哪些不同的功能。
如果要提供提交、回滚和崩溃恢复能力的事务安全ACID兼容能力并要求实现并发控制InnoDB是不错的选择。如果表主要用来插入和查询记录则MyISAM引擎能提供较高的处理效率如果只是临时存储数据数据量不大并且不需要较高的数据安全性可以选择MEMORY引擎。MySQL也使用该引擎作为临时表存放查询的中间结果如果只有INSERT和SELECT操作可以选择ARCHIVE引擎它支持高并发的插入操作但本身不是事务安全的非常适合存储归档数据如记录日志信息等。
几种常用引擎的功能比较
功能InnoDBMyISAMMEMORYARCHIVE存储限制64TB256TBRAMNone支持事务YesNoNoNo支持全文索引NoYesNoNo支持树索引YesYesYesNo支持哈希索引NoNoYesNo支持数据缓存YesNoN/ANo支持外键YesNoNoNo