首页 / MYSQL / 35、mysql存储引擎
35、mysql存储引擎
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了35、mysql存储引擎,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3626字,纯文字阅读大概需要6分钟。
内容图文
![35、mysql存储引擎](/upload/InfoBanner/zyjiaocheng/919/498335db12104f76bf7bc4663b70f231.jpg)
mysql 存储引擎:存储引擎也通常被称作“表类型”
查看所有支持的存储引擎
SHOW ENGINES;
查看指定表的存储引擎
SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
SHOW TABLE STATUS IN mydb\G;
SHOW TABLE STATUS IN mydb LIKE 't1'\G;
SHOW TABLE STATUS IN mydb WHERE Name='t1'\G;
Name 表名
Engine 存储引擎
Version 版本
Row_format 行格式
Rows 表中的行数
Avg_row_length 平均每行包含的字节数
Data_length 表中数据总体大小,单位为字节
Max_data_length 表能够占用的最大空间,单位为字节,0表示没有上限
Index_length 索引的大小,单位为字节
Data_free 对于MyISAM表,表示已经分配但尚未使用的空间,其中包含此前删除行之后腾出来的空间
Auto_increment 下一个AUTO_INCREMENT的值
Create_time 表的创建时间
Update_time 表数据的最后一次修改时间
Check_time 使用CHECK TABLE或myisamchk最近一次检查表的时间
Collation 排序规则
Checksum 如果启动,则为表的checksum
Create_options 创建表时指定使用的其他选项
Comment 表的注释信息
InnoDB
两种格式:
1.innodb_file_per_table=OFF,即是用共享表空间
每个表一个独有的格式定义文件:tb_name.frm
还有一个默认位于数据目录下的共享的表空间文件:ibdata#
2.innodb_file_per_table=ON,即是用独立表空间
每个表在数据库目录下存储两个文件
tb_name.frm
tb_name.ibd
MyISAM:
每个表都在数据库目录下存储三个文件
tb_name.frm
tb_name.MYD
tb_name.MYI
表空间: table space ,由InnoDB管理的特有格式数据文件,内部可同时存储数据和索引
SHOW VARIABLES LIKE '%engine%';
如何修改默认存储引擎:通过default_storage_engine服务变量实现
各存储引擎的特性:
InnoDB:
支持事务,有事务日志
ib_logfile0
ib_logfile1
支持外键约束(MyISAM不支持外键)
支持MVCC(多版本并发控制)
支持聚簇索引(数据和索引存放在一起)
聚簇索引之外的其他索引,通常称之为辅助索引
行级锁:间隙锁
支持使用辅助索引
支持自使用hash索引
支持热备份(依赖此特性innodb_file_per_table=ON)
MyISAM:
全文索引
支持表压缩存放:做数据仓库,能节约存储空间并提升性能
支持空间索引
表级锁
延迟更新索引
不支持事务、外键和行级锁
崩溃后无法安全恢复数据
使用场景:只读数据,表较小,能够忍受崩溃后的修复操作和数据丢失
ARCHIVE
仅支持INSERT和SELECT,支持很好压缩功能
应用于存储日志信息,或其他按照时间序列实现的数据采集类的应用
CSV:
将数据存储为CSV格式,不支持索引,仅使用与数据交换场景
BLACKHOLE:
没有存储机制,任何发往次引擎的数据都会丢弃,其会记录二进制日志,因此,常用于多级复制架构中作中转服务器
MEMORY:
保存数据在内存中,内存表;常用于保存中间数据,如周期性的聚合数据等,也用于实现临时表
支持hash索引,使用表级锁,不支持BLOB和TEXT数据类型
MRG_MYISAM:
是MYISAM的一个变种,能够将多个MyISAM表合并成一个虚表
NDB:
是MySQL CLUSTER中专用的存储引擎、
第三方的存储引擎
OLPT
XtraDB:增强的InnoDB,有Percona提供
编译安装时,下载XtraDB的源码替代MySQL存储引擎中的InnoDB的源码
PBXT:MariaDB自带此存储引擎
支持引擎级别的复制、外键约束,对SSD磁盘提供适当支持
支持事务、MVCC
TokuDB:使用 Fractal Trees索引,适用存储大数据,拥有很好的压缩比,已经被引入MariaDB
列式数据存储引擎:
Infobright:目前较有名的列式引擎,适用于海量数据存储场景,如PB级别,专为数据分析和数据仓库设计
InfiniDB
MonetDB
LucidDB
开源社区存储引擎:
Aria:前身为Maria,是增强版的MyISAM(支持崩溃后安全恢复,支持数据缓存)
Groona:全文索引引擎
Mroonga:是基于Groona的二次开发版
OQGraph:由open query研发,支持图(网状 )结构的存储引擎
SphinxSE:为Sphinx全文搜索服务器提供了SQL接口
Spider:能将数据切分成不同的分片,比较高效透明的实现了分片(shared),并支持在分片上支持并行查询
如何选择??
是否需要事务
备份的类型的支持
崩溃后的恢复
特有的特性
内容总结
以上是互联网集市为您收集整理的35、mysql存储引擎全部内容,希望文章能够帮你解决35、mysql存储引擎所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。