mysql基础之-mysql存储引擎概述(八)

网友投稿 250 2022-09-25

mysql基础之-mysql存储引擎概述(八)

0x01

mysql 存储引擎:存储引擎也通常被称作“表类型”

mysql> show engines;   --- 查看当前所有所支持的存储引擎 mysql> show table status

存储引擎格式: SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr] mysql> show table status in hellodb where Name='class'\G

Name 表名 Engine 存储引擎 Version:版本 Row_format:行格式 {DEFAULT|DYNAMIC|FIXED|COMMPRESSED|REDUNDANT|COMPACT}

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管理的特有格式数据文件,内部可同时存储数据和索引

如何修改默认存储引擎:通过default_storage_engine服务变量实现

各存储引擎的特性:       InnoDB:         支持事务,有事务日志         ib_logfile0         ib_logfile1         支持外键约束         支持MVCC(多版本并发控制)         支持聚簇索引         聚簇索引之外的其他索引,通常称之为辅助索引         行级锁:间隙锁         支持使用辅助索引         支持自使用hash索引         支持热备份

MyISAM:         全文索引         支持表压缩存放:做数据仓库,能节约存储空间并提升性能         支持空间索引         表级锁         延迟更新索引

不支持事务、外键和行级锁         崩溃后无法安全恢复数据

使用场景:只读数据,表较小,能够忍受崩溃后的修复操作和数据丢失

mysql数据库其他存储引擎

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),并支持在分片上支持并行查询

根据具体需要如何选择选择mysql存储引擎         是否需要事务         备份的类型的支持         崩溃后的恢复         特有的特性

索引类型:       聚簇索引       辅助索引

B树索引       R树索引       hash索引       全文索引

迷茫的人生,需要不断努力,才能看清远方模糊的志向!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:sqlilab-Less-54-65-writeup
下一篇:新iPhone开卖前夜:富士康悬赏万元招不到人,有工人国庆连轴转!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~