开发基础系列9,MySQL学习笔记

  MyISAM是mysql
暗许存款和储蓄引擎,它不扶助专门的学业,外键。但访问速度快,对作业完整性无需照旧以select,insert
为主的行使基本上都得以动用那个引擎。
种种MyISAM在磁盘上囤积成三个文本,文件名都和表名同样,扩大分别是:
.frm(存款和储蓄表定义)
.MYD(MYdata 存款和储蓄数据)
.MYI( MYIndex 存款和储蓄索引)
数据文件和目录文件能够停放在不一样的目录,平均布满IO,获取更火速度。

在伍.5本子在此以前,MyISAM是MySQL默许的储存引擎。MyISAM不帮忙专业、也不帮助外键,其优势是访问速度快,对事情完整性未有要求或然以SELECT、INSERT为主的使用都得以应用那几个引擎来创建表。各样MyISAM在磁盘上囤积成二个公文,其文件名和表名同样,但扩展名分别是:

1.  钦点索引文件和数据文件的不贰秘技

  • .frm(存款和储蓄表的概念)
  • .MYD(MYData,存款和储蓄数据)
  • .MYI(MYIndex,存款和储蓄索引)

  在创制表的时候经过data directory和 index directory语句钦赐,
约等于例外MyISAM表的目录文件和数据文件能够停放到区别的门径下,文件路径需借使绝对路径,并且有访问权限

数据文件和目录文件能够分级存放在分歧的目录,平均布满IO,以博取越来越快的快慢。要钦命索引文件和数据文件的门径,须求在开立表时因而DATA DIRECTORYINDEX DIRECTORY讲话钦定,也正是说分裂的MyISAM表的目录文件和数据文件能够停放分歧的不二等秘书籍下。文件路线假设相对路线,并有访问权限。

--  默认存储路径
SELECT @@datadir;

MyISAM类型的表也许损坏,原因只怕是应有尽有的,损坏后的表可能或无法被访问,会提示须要修补也许访问后回来错误的结果。MyISAM类型的表提供了修复工具,能够用 CHECK TABLE 语句来检查MyISAM的健康意况,并用 REPAIR TABLE 语句修复八个磨损的MyISAM表。表损坏可能引致数据库相当重启。

图片 1

MyISAM表补助三中不相同的储存格式,分别是:

--  首先要创建/ibddir目录,有5.6才支持单表指定目录
CREATE TABLE test_dir_table(
  strative_id VARCHAR(16)  NOT NULL,
  date_id VARCHAR(8) NOT NULL
  PRIMARY KEY (strative_id)
) ENGINE=MYISAM DATA DIRECTORY = '/ibddir' INDEX DIRECTORY= '/ibddir';
  • 静态表(固定长度)
  • 动态表
  • 压缩表

2. 检查表的例行状态

静态表是暗中认可的仓库储存格式。静态表中的字段都以定长字段,那样种种记录都以一向长度的,那种存款和储蓄格局的亮点是积累万分赶快,轻便缓存,出现故障轻松苏醒;缺点是据有的空中平时比动态表多。静态表的数码在蕴藏的时候会规行矩步列的幅度定义补足空格,可是在使用访问的时候并不会获得这一个空格,那几个空格在回去给使用从前已经去掉了。

  表只怕会毁掉,原因五花8门,check
table对MYISAM和InnoDB表都有功能,如检查有极度使用(repair
table表名;)来修复。

然则也不怎么须求特别注意的难点,假若要求保留的内容后边本来就带有空格,那么在回到结果的时候也会被去掉。上边包车型地铁例证演示了插入的记录包罗空格时的管理状态:

语法:
CHECK TABLE tbl_name[,tbl_name] … [option] …
option= {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}

mysql> create table myisam_char (name char(10)) engine=myisam;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into myisam_char values('abcde'),('abcde  '),('  abcde'),('abcde  ');
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0
mysql> select name,length(name) from myisam_char;
+---------+--------------+
| name    | length(name) |
+---------+--------------+
| abcde   |            5 |
| abcde   |            5 |
|   abcde |            7 |
| abcde   |            5 |
+---------+--------------+
4 rows in set (0.00 sec)
CHECK TABLE ai;

动态表中隐含变长字段,记录不是原则性长度的,那样存款和储蓄的帮助和益处是占用空间相对较少,然而频仍的换代或删除记录会产生碎片,需求定期实行optimize table语句或myisamchk -r指令来改革质量,并且出现故障的时候复苏绝相比较困难。

图片 2

压缩表由 myisampack 工具创造,占有非常的小的磁盘空间。因为各类记录是被单独压缩的,所以唯有可怜小的访问费用。

网站地图xml地图