文档章节

《mysql性能调优与架构设计》笔记: 二存储引擎

drewin
 drewin
发布于 2015/09/17 09:39
字数 1181
阅读 121
收藏 13

3.1 概述:

        1,MYISAM 是mysql 5.5以前版本的默认引擎,5.5以后默认存储引擎是innodb

        2、查看mysql存储引擎命令,在mysql>提示符下搞入show engines;字段 Support为:Default表示默认存储引擎  

                  

        3、设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句

    3.2 MYISAM存储引擎概述:

        1,MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件  .frm,.MYI,MYD三个文件的作用第二章中以说明;注意,不管某个表有多少个索引,都是存放在MYI这个文件中

       2, MyISAM 支持以下三种类型的索引:

            1、B-Tree 索引

                    B-Tree 索引,顾名思义,就是所有的索引节点都按照 balance tree 的数据结构来 存储,所有的索引数据节点都在叶节点。 

            2、R-Tree 索引

                    R-Tree 索引的存储方式和 b-tree 索引有一些区别,主要设计用于为存储空间和多 维数据的字段做索引,所以目前的 MySQL 版本来说,也仅支持 geometry 类型的字段作索引。 

            3、Full-text 索引

                    Full-text 索引就是我们长说的全文索引,他的存储结构也是 b-tree。主要是为了 解决在我们需要用 like 查询的低效问题。

        3,MyISAM 存储引擎的某个表文件出错之后,仅影响到该表,而不会影响到其他表,更不 会影响到其他的数据库

        4,如果我们正在运行过程中发现某个 MyISAM 表出现问题了, 则可以在线通过 check table 命令来尝试校验他,并可以通过 repair table 命令来尝试修 

复。在数据库关闭状态下,我们也可以通过 myisamchk 工具来对数据库中某个(或某些) 表 进行检测或者修复。不过强烈建议不到万不得已不要轻易对表进行修复操作,修复之前尽量 做好可能的备份工作,以免带来不必要的后果

    3.3 Innodb 存储引擎简介

            1、支持事务安装

            2,数据多版本读取

            3,锁定机制的改进 -- 行级锁

            4、实现外键

            5,Innodb 的物理结构分为两大部分:

                <1>数据文件(表数据和索引数据):

                表空间:一种是共享表空间,也就是所有表和索引数据被存放 在同一个表空间(一个或多个数据文件)中,通过 innodb_data_file_path 来指定,增加数 

据文件需要停机重启。

                             另外一种是独享表空间,也就是每个表的数据和索引被存放在一个 单独的.ibd 文件中。

            6,虽然我们可以自行设定使用共享表空间还是独享表空间来存放我们的表,但是共享表空 间都是必须存在的,因为 Innodb 的 undo 信息和其他一些元数据信息都是存放在共享表空间 里面的。共享表空间的数据文件是可以设置为固定大小和可自动扩展大小两种形式的,自动 扩展形式的文件可以设置文件的最大大小和每次展量。在创建自动扩展的数据文件的时候,建议大家最好加上最大尺寸的属性,一个原因是文件系统本身是有一定大小限制的(但 是 Innodb 并不知道),还有一个原因就是自身维护的方便。另外,Innodb 不仅可以使用文 件系统,还可以使用原始块设备,也就是我们常说的裸设备。 当我们的文件表空间快要用完的时候,我们必须要为其增加数据文件,当然,只有共享 表 空 间 有 此 操 作 。 共 享 表 空 间 增 加 数 据 文 件 的 操 作 比 较 简 单 , 只 需 要 在 innodb_data_file_path 参数后面按照标准格式设置好文件路径和相关属性即可,不过这里 有一点需要注意的,就是 Innodb 在创建新数据文件的时候是不会创建目录的,如果指定目 

录不存在,则会报错并无法启动。另外一个较为令人头疼的就是 Innodb 在给共享表空间增 加数据文件之后,必须要重启数据库系统才能生效,如果是使用裸设备,还需要有两次重启 。 这也是我一直不太喜欢使用共享表空间而选用独享表空间的原因之一


© 著作权归作者所有

共有 人打赏支持
drewin
粉丝 28
博文 121
码字总数 43979
作品 0
海淀
程序员
私信 提问
MYSQL性能调优及架构设计学习笔记-基础篇MYSQL架构组成

目录 小结 MYSQL物理文件组成 MYSQL系统架构 MYSQL自带工具使用介绍 小结 本章主要从逻辑层与物理层两个方面介绍了MYSQL软件本身及数据存储的架构,同时还包括了部分重要的客户端工具的功能介...

邪恶的小Y
2011/09/01
0
1
MYSQL企业常用架构与调优经验分享

一、选择Percona Server、MariaDB还是MYSQL 1、Mysql三种存储引擎 MySQL提供了两种存储引擎:MyISAM和 InnoDB,MySQL4和5使用默认的MyISAM存储引擎。从MYSQL5.5开始,MySQL已将默认存储引擎从...

柠檬琉璃H
2017/11/18
0
0
MYSQL企业常用架构与调优经验分享

小道消息:2016爱维Linux高薪实战运维提高班全新登场,课程大纲:http://www.iivey.com/666-2 一、选择Percona Server、MariaDB还是MYSQL 1、Mysql三种存储引擎 MySQL提供了两种存储引擎:MyI...

南非蚂蚁
2016/03/15
0
0
找Java技术经理的职位

毕业时间:08年; 学校:北京化工大学; 学历:大学本科; 籍贯:北京延庆; 目前居住地:西二旗附近; 工作时间:6年; 想找一份Java技术经理的职位,或者可以带人的高级Java开发. 1.有丰富的Java开发经验...

小小太阳
2014/06/19
1K
14
MYSQL企业常用架构与调优经验分享

一、选择Percona Server、MariaDB还是MYSQL 1、Mysql三种存储引擎 下载 MySQL提供了两种存储引擎:MyISAM和 InnoDB,MySQL4和5使用默认的MyISAM存储引擎。从MYSQL5.5开始,MySQL已将默认存储...

jilongyaee
2016/08/27
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

windows下docker报错的解决方法:This error may also indicate that the docker daemon is not running.

问题error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.35/info: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon con......

sucre
22分钟前
4
0
数据库分片(Database Sharding)详解

本文由云+社区发表 作者:腾讯云数据库 Introduction 导言 任何看到显著增长的应用程序或网站,最终都需要进行扩展,以适应流量的增加。以确保数据安全性和完整性的方式进行扩展,对于数据驱...

腾讯云加社区
23分钟前
2
0
linux定时任务的设置

linux定时任务的设置 Posted on 2010-09-23 23:49 疯狂 阅读(194243) 评论(4) 编辑 收藏 所属分类: java 为当前用户创建cron服务 1. 键入 crontab -e 编辑crontab服务文件 例如 文件内容如下...

rootliu
24分钟前
3
0
Java基础篇

基础篇 面向过程 分析解决问题时,将问题拆分成几个步骤,用函数实现这些步骤,然后依次调用这些函数 面向对象 分析解决问题时,将问题的事务分解成各个对象,各个对象包含各自的属性和行为,...

jackmanwu
31分钟前
3
0
java JSON 使用

Java 中并没有Json 解析,需要引用第三方的类库: Gson: 谷歌开发的 JSON 库,功能十分全面。 FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。 Jackson: 社区十分活跃且更新速度很快。 fa...

kuchawyz
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部