首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第05章_存储引擎

引擎介绍 # 4.1 InnoDB 引擎:具备外键支持功能事务存储引擎 MySQL 从 3.23.34a 开始就包含 InnoDB 存储引擎。 大于等于5.5之后,默认采用InnoDB引擎 。...数据文件结构:(《第 02 章_MySQL 数据目录》章节已讲) .frm 存储结构(MySQL8.0 时,合并在.ibd 中) .ibd 存储数据和索引 InnoDB 是 为处理巨大数据量最大性能设计...5.5 之前默认存储引擎 优势是访问速度快 ,对事务完整性没有要求或者以 SELECT、INSERT 为主应用 针对数据统计有额外常数存储。...故而 count (*) 查询效率很高 数据文件结构:(《第 02 章_MySQL 数据目录》章节已讲) .frm 存储结构 .MYD 存储数据 (MYData) .MYI 存储索引...MySQL5.5 之前默认存储引擎是 MyISAM,5.5 之后改为了 InnoDB。

15920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【干货】MySQL数据库开发规范

    多个字段如user_id,它们类型必须一致) mysql5.5之前默认存储引擎是myisam,没有特殊要求,所有的必须使用innodb(innodb好处支持失误,行级锁,高并发下性能更好...,从一开始就进行数据字典维护 尽量控制单数据量大小500w以内,超过500w可以使用历史数据归档,分库分来实现(500万行并不是MySQL数据库限制。...MySQL没有对存储有限制,取决于存储设置和文件系统) 谨慎使用mysql分区(分区物理上表现为多个文件,逻辑上表现为一个) 谨慎选择分区键,跨分区查询效率可能更低 建议使用物理分方式管理大数据...尽量做到冷热数据分离,减小宽度(mysql限制最多存储4096列,行数没有限制,但是每一行字节总数不能超过65535。...(使用文件服务器) 禁止在线上做数据库压力测试 禁止从开发环境,测试环境直接连生产环境数据库 限制每张索引数量,建议单索引不超过5个(索引会增加查询效率,但是会降低插入和更新速度)

    1.2K20

    如何在Ubuntu 14.04上安装MySQL

    您可以使用默认APT软件包存储库中包含其中一个版本(5.5和5.6),也可以先手动添加MySQL存储库来安装最新版本(目前为5.7)。...为了帮助您决定哪个版本是最适合你,你可以阅读MySQL介绍到MySQL 5.5,然后可以阅读是什么MySQL 5.6新功能和什么MySQL 5.7新功能。...如果您不确定,可以使用mysql-serverAPT软件包,它只为您Linux发行版安装最新版本。撰写本文时,这是5.5,但您可以随时更新到另一个版本。...sudo mysql_secure_installation 这将提示您输入步骤1中创建root密码。您可以按ENTER接受所有后续问题默认值,但询问您是否要更改root密码问题除外。...第3步 - 测试MySQL 无论你如何安装它,MySQL应该已经开始自动运行。要测试它,检查其状态。 service mysql status 您将看到以下输出(具有不同PID)。

    2.7K22

    MySQL存储引擎

    TABLE ENGINE = 存储引擎名称; 二、主要引擎介绍 不同引擎本质上是数据库数据存储结构方式不同 不同数据下数据库储存有不同需求,所以需要不同引擎 种类 锁机 制 B/B...,支持自动增长列,外键等功能 优势: InnoDB是 为处理巨大数据量最大性能设计,支持事物,存储数据更加安 InnoDB数据存储结构: .frm 存储结构(MySQL8.0时,合并在.ibd...中) .ibd 存储数据和索引 注:索引采用聚集索引,索引和数据存储同一个文件 对比MyISAM: 对比MyISAM存储引擎, InnoDB写处理效率差一些 ,并且会占用更多磁盘空间(数据和索引是一体...,MyISAM是数据和索引分离) MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据, 对内存要求较高 ,而且内存大小对性能有决定性影响 注:MySQL5.5之后,默认采用...MEMORY 大小是受到限制 ,且要求存储数据是数据长度不变格式 4. 当mysqld守护进程崩溃,数据会丢失,生命周期短

    2.4K40

    MySQL】基础实战篇(3)—九大储存引擎详解

    如果b采用MyISAM存储引擎 data\a中会产生三个文件。 MySQL5.7中b.frm文件中: 描述结构文件,字段长度等。...MySQL8.0中b.×××.sdi文件中:描述结构文件,字段长度等。...MysQL5.5以后支持索引功能。 拥有很好压缩机制,使用z1ib压缩库,在记录请求时候实时进行压缩,经常被用来作为仓库使用。 创建ARCHIVE时,存储引擎会创建名称以开头文件。...MEMORY大小是受到限制大小主要取决于两个参数 分别是max_rows和max_heap_table_size....其中max_rows可以创建时指定 数据文件与索引文件分开存储 每个基于MEMORY存储引擎实际对应一个磁盘文件,该文件文件名相同,类型为.frm类型,该文件中只存储结构,而其数据文件都是存储在内存中

    33630

    MySQL 小览

    MySQL介绍 什么是MySQL? 一个轻量级关系型数据库 为什么使用MySQL? 开源免费,高性能,稳定性高,易维护 MySQL基础架构 ? 查询执行计划 ? 常用存储引擎 ?...archive zlib压缩 只支持SELECT和INSERT 基础概念 MySQL 数据库,物理存在操作系统文件集合 MySQL Server,管理MySQL数据系统 MySQL 实例,MySQL...5.6以上支持在线DDL,但字符串长度256前后变更,导致写锁 让DBA使用percona-toolkit(PT)执行 请在低峰执行 DML(Data Manipulation Language)...5.5+) show character set; 校对规则 默认: utf8_general_ci 不区分大小写 utf8_bin:区分大小写(select * from test where...current_timestamp 字段注释 避免过长(部分DBA工具限制) 安全 权限: 申请适当权限(CURD) grant select , update , delete on employees

    39110

    值得收藏:一份非常完整 MySQL 规范(一)

    所有数据库对象名称禁止使用 MySQL 保留关键字(如果中包含关键字查询时,需要将其用单引号括起来)。 数据库对象命名要能做到见识意,并且最后不要超过3 2 个字符。...二、数据库基本设计规范 所有必须使用 InnoDB 存储引擎没有特殊要求(即 InnoDB 无法满足功能如:列存储,存储空间数据等)情况下,所有必须使用 InnoDB 存储引擎(MySQL 5.5...尽量控制单数据量大小,建议控制 500 万以内 500 万并不是 MySQL 数据库限制,过大会造成修改结构、备份、恢复都会有很大问题,可以用历史数据归档(应用于日志数据),分库分(应用于业务数据...谨慎使用 MySQL 分区 分区物理上表现为多个文件,逻辑上表现为一个 谨慎选择分区键,跨分区查询效率可能更低 建议采用物理分方式管理大数据。...TEXT 或 BLOB 类型只能使用前缀索引 因为 MySQL 对索引字段长度是有限制,所以 TEXT 类型只能使用前缀索引,并且 TEXT 列上是不能有默认。 3.

    71610

    MySQL中有哪些需要注意配置项?

    所以盲目的运用这些推荐之前,记住下面的内容: 一次只改变一个设置!这是测试改变是否有益唯一方法。 大多数配置能在运行时使用SET GLOBAL改变。...确定你把配置放在了正确区域内(所有这篇文章提到配置都属于 [mysqld]) 服务器改动一个配置后启不来了:确定你使用了正确单位。...一直到MySQL 5.5,redo日志总尺寸被限定在4GB(默认可以有2个log文件)。这在MySQL 5.6里被提高。...具有大记录长度临时 (所有列长度和)或包含BLOB列存储硬盘上。...当启用独立空间时,合理调整:innodb_open_files innodb_open_files = 500 # 限制Innodb能打开数据,如果库里特别多情况,增加这个。

    1.2K30

    MySQL 8.0.19亿级数据如何秒速增加字段?

    copy 算法为最古老算法, MySQL 5.5 及以下为默认算法。 从 MySQL 5.6 开始,引入了 inplace 算法并且默认使用。...MySQL 5.5 以上版本。...一般情况下建议: 如果使用MySQL 5.5 或者 MySQL 5.6,推荐使用 gh-ost 如果使用MySQL 5.7,索引等不涉及修改数据操作,建议使用默认 inplace 算法...MySQL 完成临时写入之后,用临时替换掉源。这个算法主要被早期(<=5.5)版本所使用。 2、inplace 算法 从 5.6 开始,常用 DDL 都默认使用这个算法。...---- 基于上面的测试可以发现,快速加列功能上使用 instant 算法添加列基本都在 1s 内完成,而使用 5.7 版本 inplace 算法时,则添加列时间上升至数分钟。

    6.7K10

    MySQL【第五章】——视图+索引

    3.索引分类    1) 普通索引:是最基本索引,它没有任何限制;    2) 唯一索引:与前面的普通索引类似,不同就是:索引列值必须唯一,但允许有空值。...如果是组合索引,则列值组合必须唯一;    3) 主键索引:是一种特殊唯一索引,一个只能有一个主键,不允许有空值;    4) 组合索引:指多个字段上创建索引,只有查询条件中使用了创建索引时第一个字段...主要作用是提高查询较大字符串类型速度;只有MyISAM引擎支持该索引,MySQL默认引擎不支持;mysql5.7+    4.创建索引    CREATE [UNIQUE|FULLTEXT] INDEX...索引 ON (字段名[(长度)][ASC|DESC])    5.修改索引    ALTER TABLE ADD [UNIQUE|FULLTEXT] INDEX 索引(字段名[(长度...语句时,%右边才会使用索引。

    64420

    mysql5.5安装教程

    确认一下先前设置,如果有误,按“Back”返回重做。按“Install”开始安装。 ? ? ? 5、正在安装中,稍候,直到出现下面的界面, 则完成MYSQL安装 ?...3、选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL...8、选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysqlbin目录加入到Windows PATH(加入后,就可以直接使用bin下文件,而不用指出目录...9、询问是否要修改默认root用户(超级管理)密码。...,检查是否按上面一步所说,之前密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下data文件夹备份,然后删除,安装完成后,将安装生成 data文件夹删除,备份data文件夹移回来

    62020

    PHP升级到5.5+后MySQL函数及其Mysqli函数代替用法

    由于MySQL扩展从php5.5开始弃用,所以以后不推荐大家再用MySQL扩展,请用MySQLi或PDO代替,以下是MySQL对应MySQLi函数(绿色字体)供大家参考。...操作所影响记录行数 mysql_client_encoding — (mysqli_character_set_name())返回字符集名称(返回当前连接默认字符集名称。)...())将结果集中指针设定为指定字段偏移量 mysql_field_table — (mysqli_fetch_field_direct() [table] or [orgtable])取得指定字段所在...— (mysqli_character_set_name())返回字符集名称(返回当前连接默认字符集名称。)...())将结果集中指针设定为指定字段偏移量 mysql_field_table — (mysqli_fetch_field_direct() [table] or [orgtable])取得指定字段所在

    1.1K20

    MySQL 快速入门(一)

    ; # 查看单 desc ; # 查看表详细字段信息 # 一个数据库操作另外一个数据库内,可以不use 数据库. 数据增删改查(数据) 操作数据,先确定库,确定操作数据...,针对不同数据应该有对应不同处理机制来存储; 存储引擎就是不同处理机制; MySQL主要存储引擎 InnoDB:MySQL5.5版本之后默认存储引擎(默认) MyISAM:MySQL5.5版本之前默认存储引擎...keys(外键) 指定引擎 create table (类型,字段) engine=[引擎] # 验证不同存储引擎存储时候,异同点 create table t1(id int) engine...| | +-------+---------+------+-----+---------+-------+ * null yes:可以插入空值 基本数据类型 每个数据类型都有默认宽度限制...它们最大长度和是否尾部空格被保留等方面也不同。存储或检索过程中不进行大小写转换。

    1.5K31

    MySQL数据库存储引擎

    mysql5.5之前版本中,默认是Myisam存储引擎,5.5版本以后是Innodb.MYSQL给开发者提供了查询存储引擎功能,执行以下SQL即可查询到mysql存储引擎show engines...共九种存储引擎注:另外还有两种存储引擎,BDB(BerkeleyDB)引擎,NDB Cluster引擎InnoDB存储引擎InnoDB是事务型数据库首选引擎,5.5版本以后,也是mysql默认事务型引擎...InnoDB可以是任何尺寸,即使文件尺寸被限制为2GB操作系统上4、InnoDB支持外键完整性约束,存储数据时,每张存储都按主键顺序存放,如果没有显示定义时指定主键,InnoDB会为每一行生成一个...可以固定或动态记录长度12、VARCHAR和CHAR列可以多达64KB存储格式:1、静态默认):字段都是非变长(每个记录都是固定长度)。...MySQL 5.5版以前,Archive是不支持索引,但是MySQL 5.5以后版本中就开始支持索引了。

    5.5K31

    3、MySQL数据类型介绍

    一、概述: MySQL数据库中数据大致可以分为以下几类,从而实现数据库操作时候对不同类型处理。...  127 | -32768 | 655356 | 999999999 | 999999999 | +------+--------+--------+-----------+-----------+ MySQL5.5... integer value: 'NIHAO' for column 'id1' at row 1 类型不同数据也限制执行插入操作 类型直接均可使用int(n)这里n则是对整型数据长度进行限制,n...3.2 三种类型优缺点: char较varchar占用空间,但效率高 char:固定长度,插入数据必须小于指定长度否则自动截断(适用于mysql版本低于5.5版本,大等于该版本将不能插入数据)。...建议使用char类型 InnoDB:由于其数据内部存储格式对固定长度数据行和可变长度数据行不加区分,素有使用varchar可以减少磁盘空间用量和尖山磁盘I/O。

    80510

    必要商城MySQL开发规范

    32; 库、字段名禁止使用MySQL保留关键字; 临时库、临时必须以tmp为前缀并以日期为后缀; 备份库、备份必须以bak为前缀并以日期为后缀; 二、基本规范 使用...INNODB存储引擎 5.5版本以后默认引擘,支持事务,行级锁,更好恢复性,高并发下性能更好,对多核,大内存,ssd等硬件支持更好 表字符集使用utf8mb4( 5.5.3版本以上支持)...所有都需要添加注释,单数据量建议控制1000万以内; 不在数据库中存储图片、文件等大数据; 禁止在线上做数据库压力测试; 禁止从测试、开发环境直连数据库; 三、库设计规范...禁止使用分区 MySQL分区实际性能不是很好,且管理维护成本较高 拆分大字段和访问频率低字段,分离冷热数据 用HASH进行散后缀使用十进制数,下标从0开始 首次分尽量多分...,因为MySQL一个中所有的VARCHAR字段最大长度是65535个字节,进行排序和创建临时一类内存操作时,会使用N长度申请内存 如果可能的话所有字段均定义为not null 使用UNSIGNED

    67910

    MySQL开发规范

    32; 库、字段名禁止使用MySQL保留关键字; 临时库、临时必须以tmp为前缀并以日期为后缀; 备份库、备份必须以bak为前缀并以日期为后缀; 二、基本规范 使用...INNODB存储引擎 5.5版本以后默认引擘,支持事务,行级锁,更好恢复性,高并发下性能更好,对多核,大内存,ssd等硬件支持更好 表字符集使用utf8mb4( 5.5.3版本以上支持)...所有都需要添加注释,单数据量建议控制1000万以内; 不在数据库中存储图片、文件等大数据; 禁止在线上做数据库压力测试; 禁止从测试、开发环境直连数据库; 三、库设计规范...禁止使用分区 MySQL分区实际性能不是很好,且管理维护成本较高 拆分大字段和访问频率低字段,分离冷热数据 用HASH进行散后缀使用十进制数,下标从0开始 首次分尽量多分...,因为MySQL一个中所有的VARCHAR字段最大长度是65535个字节,进行排序和创建临时一类内存操作时,会使用N长度申请内存 如果可能的话所有字段均定义为not null 使用UNSIGNED

    83010

    值得收藏:一份非常完整 MySQL 规范(一)

    所有数据库对象名称禁止使用 MySQL 保留关键字(如果中包含关键字查询时,需要将其用单引号括起来)。 数据库对象命名要能做到见识意,并且最后不要超过3 2 个字符。...二、数据库基本设计规范 所有必须使用 InnoDB 存储引擎没有特殊要求(即 InnoDB 无法满足功能如:列存储,存储空间数据等)情况下,所有必须使用 InnoDB 存储引擎(MySQL 5.5...尽量控制单数据量大小,建议控制 500 万以内 500 万并不是 MySQL 数据库限制,过大会造成修改结构、备份、恢复都会有很大问题,可以用历史数据归档(应用于日志数据),分库分(应用于业务数据...谨慎使用 MySQL 分区 分区物理上表现为多个文件,逻辑上表现为一个 谨慎选择分区键,跨分区查询效率可能更低 建议采用物理分方式管理大数据。...TEXT 或 BLOB 类型只能使用前缀索引 因为 MySQL 对索引字段长度是有限制,所以 TEXT 类型只能使用前缀索引,并且 TEXT 列上是不能有默认。 3.

    58410

    数据库之MySql建议收藏

    主表(主键字段); 删除外键:alter table drop foreign key 外键名称 修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT...MyISAM也可以平台和操作系统之间移植。 MyISAM大小可达256TB,这个数据里是非常巨大。 此外,MyISAM可以压缩为只读以节省空间。...启动时,MySQL会检查MyISAM是否有损坏,甚至在出现错误情况下修复它们。MyISAM不是事务安全。...MySQL 5.5之前,MyISAM是创建但是不用明确指定存储引擎时默认存储引擎。 从版本5.5起,MySQL使用InnoDB作为默认存储引擎。...像MyISAM一样,InnoDB可以不同平台和操作系统之间移植。如果需要,MySQL还会在启动时检查和修复InnoDB

    89510
    领券