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

3.1 概述:mysql

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

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

                  

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

    3.2 MYISAM存储引擎概述:工具

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

       2, MyISAM 支持如下三种类型的索引:设计

            一、B-Tree 索引索引

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

            二、R-Tree 索引it

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

            三、Full-text 索引

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

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

        4,若是咱们正在运行过程当中发现某个 MyISAM 表出现问题了, 则能够在线经过 check table 命令来尝试校验他,并能够经过 repair table 命令来尝试修 

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

    3.3 Innodb 存储引擎简介

            一、支持事务安装

            2,数据多版本读取

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

            四、实现外键

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

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

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

据文件须要停机重启。

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

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

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

相关文章
相关标签/搜索