《深入浅出Mysql》——第二篇 开发篇 第七章 表类型(存储引擎)的选择

和大多数数据库不同,MySQL 中有一个存储引擎的概念,针对不同的存储需求可以选择最 优的存储引擎。本章将详细介绍存储引擎的概念、分类以及实际应用中的选择原则。

插件式存储引擎是 MySQL 数据库最重要的特性之一,用户可以根据应用的需要选择如 何存储和索引数据、是否使用事务等。MySQL 默认支持多种存储引擎,以适用于不同领域 的数据库应用需要,用户可以通过选择使用不同的存储引擎提高应用的效率,提供灵活的存 储,用户甚至可以按照自己的需要定制和使用自己的存储引擎,以实现最大程度的可定制性。

查看当前的默认存储引擎:

将 ai 表的引擎改为 innodb

其中,静态表是默认的存储格式。静态表中的字段都是非变长字段,这样每个记录都是 固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是 占用的空间通常比动态表多。静态表的数据在存储的时候会按照列的宽度定义补足空格,但 是在应用访问的时候并不会得到这些空格,这些空格在返回给应用之前已经去掉。

动态表中包含变长字段,记录不是固定长度的,这样存储的优点是占用的空间相对较少,但 是频繁地更新删除记录会产生碎片,需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命 令来改善性能,并且出现故障的时候恢复相对比较困难。

删除主表中的数据,显示删除不了:

主表更新时,从表也更新:

下面例子创建了一个 MEMORY 的表,并从 city 表获得记录:

给 MEMORY 表创建索引的时候,可以指定使用 HASH 索引还是 BTREE 索引:

可以发现,payment_all 表中的数据是 payment_2006 和 payment_2007 表的记录合并后的结 果集

下面向 MERGE 表插入一条记录,由于 MERGE 表的定义是 INSERT_METHOD=LAST,就会向最 后一个表中插入记录,所以虽然这里插入的记录是 2006 年的,但仍然会写到 payment_2007 表中。

正确地选择了存储引擎之后,还需要正确选择表中的数据类型,下一章我们将详细介绍如何 选择合适的数据类型

原文地址:https://www.cnblogs.com/JasonPeng1/p/12234408.html

时间: 2024-08-13 07:45:07

《深入浅出Mysql》——第二篇 开发篇 第七章 表类型(存储引擎)的选择的相关文章

MySQL改变表的存储引擎

MySQL提供了多种数据库存储引擎,存储引擎负责MySQL数据库中的数据的存储和提取.不同的存储引擎具有不同的特性,有时可能需要将一个已经存在的表的存储引擎转换成另外的一个存储引擎,有很多方法可以完成这种转换,每一种方法都会有优缺点,应当根据实际情况去选择,下面讲述三种转换MySQL表引擎的方法: ALTER TABLE 转换MySQL表引擎最简单的方法是直接使用ALTER TABLE去修改表的定义.下面的这条语句将mytable表引擎转换成InnoDB mysql>ALTER TABLE my

MySQL查看和修改表的存储引擎

如何查看MySQL的当前存储引擎? 一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看: 看你的mysql现在已提供什么存储引擎: mysql> show engines; 看你的mysql当前默认的存储引擎: mysql> show variables like '%storage_engine%'; 你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎): mysql> show create table 表名; 如何查看Mysql服

mysql修改表的存储引擎(myisam<=>innodb)

查看当前数据库的所支持的数据库引擎以及默认数据库引擎 mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +----

mysql 存储引擎的选择你会吗?

mysql 存储引擎的选择你会吗?,布布扣,bubuko.com

Mysql存储引擎及选择方法

0x00 Mysql数据库常用存储引擎 Mysql数据库是一款开源的数据库,支持多种存储引擎的选择,比如目前最常用的存储引擎有:MyISAM,InnoDB,Memory等. MyISAM存储引擎 MyISAM是Mysql的默认存储引擎,它支持B-tree/FullText/R-tree索引类型,并且MyISAM的锁级别是表锁,表锁的开销小,加锁快:锁粒度大,发生锁冲突的概率较高,并发度低:表锁适合查询.MyISAM引擎不支持事务性,也不支持外键. InnoDB存储引擎 InnoDB存储引擎最大的

MySQL更改表的存储引擎

MySQL它提供了多种数据库存储引擎,存储引擎负责MySQL存储和检索数据的数据库.不同的存储引擎具有不同的特性,能须要将一个已经存在的表的存储引擎转换成另外的一个存储引擎.有非常多方法能够完毕这样的转换,每一种方法都会有优缺点.应当依据实际情况去选择.以下讲述三种转换MySQL表引擎的方法: ALTER TABLE 转换MySQL表引擎最简单的方法是直接使用ALTER TABLE去改动表的定义.以下的这条语句将mytable表引擎转换成InnoDB mysql>ALTER TABLE myta

【超简单】MySQL存储引擎的选择与配置

[超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能.这些不同的技术以及配套的相关功能在MySQL中被称为存储引擎. 下面就为大家介绍两种MySQL中比较常见的两种存储引擎:MyISAM和InnoDB MyISAM存储引擎 MyISAM存储引擎是MySQL关系数据库系统5.5版本之

MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解

本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL逻辑架构 1.逻辑架构图 基于下面的逻辑架构图,可以大致熟悉MySQL各个架构组件之间的协同工作关系. 很经典的C/S架构风格,即客户端/服务端模式. 2.分层描述 客户端连接 通常会进行连接池管理,连接用户权限认证,安全管理等操作. 可以通过如下命令查看连接配置信息:SHOW VARIABLES LIKE '%connect%';可以看到最大连接和每个连接占用的内存等相关配置. 核心功能 第二层架构封装MySQL一系列核心

MySQL查看和修改表的存储引擎(转载+加点东西)

1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a.show table status from YOUR_DB_NAME where name='YOUR_TABLE_NAME'; b.show create table YOUR_TABLE_NAME; 如果显示的格式不好看,可以用\g代替行尾分号  有人说用第二种方法不准确,我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为