🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Innodb存储引擎 windows环境下mysql数据库数据表的默认存储引擎 创建一个InnoDB表,对应磁盘上创建一个(.frm)表结构文件,所有InnoDB表数据都放在一起,文件名是data文件夹下的ibdata.数据较多时,可分为ibdata1,ibdata2… 可以看 这个配置参数 ~~~ innodb_file_per_table show variables like 'innodb_file_per_table'; set global innodb_file_per_table=ON; ~~~ ON:独立表空间:tablename.ibd OFF:系统表空间:ibdataX 系统表空间无法简单的收缩文件大小 如果想把原来存在于表空间的表转移到独立表空间中的方法 步骤 1. 使用mysqldump导出所有数据库表数据(存储过程,触发器也要导出) 2. 停止mysql服务,修改参数,并删除Innodb相关文件 3. 重启mysql服务,重建Innodb系统表空间 4. 重新导入数据 特性 1. Innodb是一种事务性存储引擎 2. 完全支持事务的ACID特性(原子特性) 3. Redo Log和Undo Log (2种日志,一种是实现持久性,存储已经提交的事务不需要随机读写,一种是帮助事务回滚日志和MVCC多版本控制的,存储未提交的事务需要随机读写) ~~~ show variables like 'innodb_log_buffer_size'; 这就是innodb的 Redo Log缓冲区大小,字节单位 show variables like 'innodb_log_files_in_group'; 应该是2 ~~~ 存储引擎特性 * innodb支持行级锁 * 行级锁是由存储引擎层实现的 数据更新速度快,插入和读取稍慢,支持事物 编辑数据表的默认存储引擎:MySQL配置文件(my.ini):default-storage-engine=INNODB Innodb状态检查 ~~~ show engine innodb status\G; 输出 Per second averages calculated from the last 29 seconds这时显示最近29秒的状态信息 等等还有其他 ~~~ # Myisam存储引擎 版本<mysql5.0默认表的大小为4G 如存储大表要修改MAX_Rows和AVG_ROW_LENGTH mysql5.5版本之前默认的存储引擎,系统表和临时表基本都是myisam 临时表是指在排序,分组等操作中,当数量超过一定的大小之后,由查询优化器建立的临时表 对MyISAM进行表修复会造成数据丢失 创建一个myisam作为存储引擎的数据表时,就会在磁盘上建立三个文件,(.frm表的结构文件 .MYD表的数据文件 .MYI表的索引) Myisam存储引擎数据表是独立于操作系统的,可以轻松备份以及移植数据 数据表有较高的写入和查询速度,数据更新慢,不支持事物 特性: * 支持全文索引 * 支持数据压缩 * 支持空间类应用,如GPS 修改存储引擎 alter table tbname engine innodb;