mysql中,存储引擎是插件式的,同一个数据库中的不同的表可以使用不同的存储引擎,所以,存储引擎是表级别的概念,存储引擎也被称为"表类型",每张表可以使用不同的存储引擎类型。
目前来说,mysql中最常用的存储引擎为innodb与myisam,每种存储引擎都有自己的特性,适用于不同的场景,那么,我们先来对比一下最常用的两种存储引擎的特性
MYISAM:支持表级锁,不支持行级锁,不支持事务,不支持外检约束,支持全文索引,表空间文件相对小。
INNODB:支持表级锁,行级锁,支持事务,支持外检,不支持全文索引,表空间文件相对较大。
除了上述最长用的两种存储引擎,其他各存储引擎类型的特性如下:
CSV:将CSV文件(以逗号分隔字段的文本文件)作为MySQL表文件。
MRG_MYISAM:此引擎也被称为MERGE存储引擎,如果一些myisam表的表结构完全相同,可以将这些MyISAM表合并成的一张MRG_MYISAM虚拟表。
BLACKHOLE:类似于/dev/null,不真正存储数据。
MEMORY:内存存储引擎,速度快,但是一旦断电数据将会丢失,支持hash索引,支持表级锁,常用于临时表。
PERFORMANCE_SCHEMA:从mysql5.5之后, 多出了PERFORMANCE_SCHEMA数据库,PERFORMANCE_SCHEMA数据库中的表的表类型均为 PERFORMANCE_SCHEMA,此数据库用于存储与数据库的性能相关的信息,用户无法创建使用这种存储引擎的表,但是dba可以通过 PERFORMANCE_SCHEMA数据库中的信息进行性能分析,PERFORMANCE_SCHEMA数据库服务启动后此库中将不断的收集数 据,mysql停机后此库中的表将不存在数据,类似于linux中的/proc。
FEDERATED: 用于访问其它远程MySQL服务器上表的存储引擎接口。
ARCHIVE: 见名知义,创建此种表类型的表往往用于存储归档信息、安全审计信息、历史信息等,创建数据仓库时,可能会用到此种表类型,使用archive表类型的表只支持select和insert操作,不能更新和删除操作,支持行级锁。
FEDERATED:利 用federated引擎可将本地数据表映射至远程 MySQL 数据表,从而就可以解决应用程序中繁多的跨机器连接数据库问题,其 实federated相当于一个访问其他远程mysql server的代理接口,它通过创建一个到远程mysql server的客户端连接,通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中。

查看存储引擎

MariaDB [(none)]> show engines;
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                          | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
| MRG_MyISAM         | YES     | Collection of identical MyISAM tables                                            | NO           | NO   | NO         |
| CSV                | YES     | Stores tables as CSV files                                                       | NO           | NO   | NO         |
| SEQUENCE           | YES     | Generated tables filled with sequential values                                   | YES          | NO   | YES        |
| MyISAM             | YES     | Non-transactional engine with good performance and small data footprint          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                        | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, foreign keys and encryption for tables | YES          | YES  | YES        |
| Aria               | YES     | Crash-safe tables with MyISAM heritage                                           | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                               | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)
MariaDB [(none)]> show create table mysql.user
..............`max_statement_time` decimal(12,6) NOT NULL DEFAULT 0.000000,PRIMARY KEY (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges' |

查看所有表的存储引擎

MariaDB [mysql]> show table status \G

查看指定表的存储引擎

MariaDB [mysql]> show table status  like 'tables' \G

指定存储引擎

mysql> create table test1(id int primary key,name varchar(30)) engine=innodb;
Query OK, 0 rows affected (0.01 sec)

修改存储引擎

mysql> alter table test1 engine=innodb;
Query OK, 0 rows affected (0.01 sec)

设定默认存储引擎

vim my.cnf
default-storage-engine=innodb
innodb_file_per_table #每表使用单独的表空间
[root@node1 bin]# rpm -qc rh-mysql57-mysql-server
/etc/logrotate.d/rh-mysql57-mysqld
/etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
/opt/rh/rh-mysql57/service-environment
/var/opt/rh/rh-mysql57/log/mysql/mysqld.log
[root@node1 bin]# cat /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
#
# These groups are read by MySQL server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
## this is read by the standalone daemon and embedded servers
[server]# this is only for the mysqld standalone daemon
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mysqld/mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld]
datadir=/var/opt/rh/rh-mysql57/lib/mysql
................
[root@node1 bin]# cd /var/opt/rh/rh-mysql57/lib/mysql
[root@node1 mysql]# ls
auto.cnf  ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile0  ibtmp1  mysql_upgrade_info  private_key.pem  server-cert.pem  sys
blueicex  ca.pem      client-key.pem   ibdata1         ib_logfile1  mysql   performance_schema  public_key.pem   server-key.pem
[root@node1 mysql]# cd blueicex/
[root@node1 blueicex]# ls
db.opt  test1.frm  test1.ibd

每张表都有两种后缀名的文件,分别为frm后缀与ibd后缀。
frm后缀的文件中存储了表的表结构信息。
ibd后缀的文件中存放了表的数据信息与索引信息。
如果在配置文件中没有开启innodb_file_per_table参数,在数据库对应的目录中则不会出现 .ibd 为后缀的文件,因为默认情况下会共用ibdata1,如果在一开始没有开启innodb_file_per_table,并且已经存在某些使用 innodb存储类型的表,那么这些表将共用ibdata1,如果这时,又开启了innodb_file_per_table,那么原来的表的数据仍然存 在于ibdata1中,新创建的表才会使用单独的以.ibd为后缀的表空间文件。
使用了myisam类型的存储引擎,每张表都有三种后缀名的文件,分别是.frm后缀、.MYD后缀、.MYI后缀。
frm后缀的文件中存放了表结构信息。
MYD后缀的文件中存放了数据信息。
MYI后缀的文件中存放了索引信息。

————Blueicex 2020/3/28 20:30 blueice1980@126.com

MariaDB—— 14.存储引擎相关推荐

  1. MariaDB存储引擎简介

    目录 MariaDB存储引擎简介 存储引擎简述 简单介绍几个 MariaDB 的存储引擎 1.InnoDB/XtraDB 2.MyISAM 3.Aria 4.TokuDB 5.MyRocks 6.Co ...

  2. mysql存储引擎静态表_MySQL存储引擎(表类型)的选择

    一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...

  3. MySql 扩展存储引擎

    MySql 扩展存储引擎 下面介绍几个列式存储引擎(都有两个版本:社区版.商业版): 一:TokuDB TokuDB 是一个高性能.支持事务处理的 MySQL 和 MariaDB 的存储引擎.Toku ...

  4. ruhr启动mysql数据库_Mysql表类型(存储引擎)的选择

    以下内容转载自:https://www.cnblogs.com/jswang/p/6923911.html 7.1 mysql存储引擎概述 插件式存储引擎是mysql数据库最重要的特性之一,用户可以根 ...

  5. MariaDB的Aria存储引擎

    2019独角兽企业重金招聘Python工程师标准>>> # Aria存储引擎 Aria是MariaDB的一个全新的存储引擎,它是作为MyISAM存储引擎的替代者而开发的. 它的特点: ...

  6. mariadb的explain分析及InnoDB存储引擎

    id: 当前查询语句中,每个SELECT语句的编号,     id: 1  表示简单类型的查询 复杂类型的查询有三种:简单子查询,用于FROM中的子查询,联合查询:UNION 注意:UNION查询的分 ...

  7. mysql maria引擎_MySQL/mariadb知识点——存储过程及存储引擎

    MySQL架构 连接器 连接池,安全认证.线程池.连接限制.检查内存.缓存 SQL接口 DML.DDL SQL解析器,对SQL语句的权限检查.解析为二进制程序 优化器,优化访问路径 缓存cache,b ...

  8. MariaDB存储引擎介绍

    存储引擎 说明 XtraDB XtraDB是由Percona公司提供的开源数据库引擎,和InnoDB一样支持事务,可以提供更高的压缩.是10.1版本的默认存储引擎. InnoDB InnoDB是MyS ...

  9. 14、查看和修改默认存储引擎

    本节主要介绍关于默认存储引擎的操作.如果需要操作默认存储引擎,首先需要查看默认存储引擎.可以通过执行下面的语句来查看默认的存储引擎,具体 SQL 语句如下: SHOW VARIABLES LIKE ' ...

  10. ClickHouse和他的朋友们(5)存储引擎技术进化与MergeTree

    21 世纪的第二个 10 年,虎哥已经在存储引擎一线奋战近 10 年,由于强大的兴趣驱动,这么多年来几乎不放过 arXiv 上与存储相关的每一篇 paper.尤其是看到带有 draft 的 paper ...

最新文章

  1. 提取某个符合条件的字符串中的中文字符 例子
  2. CMMI入门-通用目标的实施- GG3
  3. 图˙谱˙马尔可夫过程˙聚类结构(转自MIT的中国留学生博客)
  4. 依赖注入_Map类型的注入
  5. SAP各种产品中的客户主数据模型建模详解
  6. python2.7安装pip_python2.7 安装pip的方法步骤(管用)
  7. mysql yum多实例_mysql———基于yum源实现多实例
  8. wordpress模板-RIPro-V2子主题V1.4-VAN主题
  9. Gamma Correction
  10. 个人阅读作业2016.1.10
  11. 【转】C语言浮点数运算
  12. MQTT 物联网Mosquitto服务器配置要点
  13. html抓取cpu温度,一种获取CPU温度的测试方法、系统及计算机存储介质与流程
  14. NetBeans ide操作流程及注意事项
  15. 智慧城市不是建设出来的,而是运营出来的
  16. ubuntu18安装Domoticz(内网穿透)和home assistant(docker安装)
  17. qt 图片适应窗口_Qt图片自适应窗口控件大小
  18. flink-cdc 使用
  19. Go实现随机、轮训、权重、哈希负载均衡
  20. ubuntu安装与卸载搜狗输入法

热门文章

  1. stm32采集交流电压信号_用STM32采集了64个点的交流信号,如何计算有效值。。
  2. 青年志愿者演讲稿合集15篇
  3. 数学经典思想:数学归纳法 理解+实战
  4. 微信接入之获取用户头像
  5. 本地远程连接服务器调试
  6. 算法篇----求两数的最大公约数和最小公倍数
  7. 曲线曲面基本理论(二)
  8. 全国各地电信DNS服务器地址
  9. 用Java输出正方形,长方形
  10. 计算机怎么给表格添加蓝色边框,excel表格蓝色边框锁定|excel如何选择多个下拉菜单中的选项?...