mysql8支持myISAM_mysql菜鸟手迹8--mysql存储引擎之MyISAM

MyISAM可以将表压缩为只读表来节省空间。使用myisampack工具来进行表压缩。

MyISAM支持全文索引;一般使用instr()来替代。

myisam在写的时候,会产生一个表级锁。myisam锁的时候使用一个lock命令,lock类型有write锁(只有当前线程可以做读写删操作),read锁(其他线程可以读,当前线程可以读写删),read local(锁定当前表,当前显存不能插入数据,其他线程可以进行插入,但不能删除加锁时的数据)。

查询标识符,使用LOW_PRIORITY  HIGH_PRIORITY 来改变执行的优先级;select high_priority  * from t ;插入,删除,更改的优先级比select高;使用read local 锁之后,另一个线程是可以插入的,但是insert的优先级使用LOW_PRIORITY 时,就不能插入了;使用delayed来做到延迟插入 ,insert  delayed into t values ('a');

MyISAM 引擎的数据存储结构很清楚,每个表的信息都存放在3个文件中,可以通过复制这3个文件,实现对数据表的备份。在拷贝的时候最好是先关闭服务器。

在创建表的时候,可以通过max_rows ,min_rows来指定数据表的最大最小行数。表中的数据可以比这个指定的最大行数大,也可以比指定的最小行数小,mysql只是根据我们的指示标识符决定内部指令的大小。

show  global variables like '%point%' 默认 myisam_data_pointer_size =6 也就是2的48次方字节的数据。

MyISAM在倒数据的时候,会先将数据倒晚,然后在键索引,这个比倒一条数据建一个索引要快。导出数据:select * from t into outfile '/tmp/a.txt' fields terminated by ',' encloesd by '"';清空表: truncate table t; 导入数据:load data infile '/tmp/a.txt' into table t fields terminated by ',' enclosed by '"';

MyISAM 引擎在遇到磁盘容量不足的时候,不会报错,它会把这个操作挂起,等磁盘空间够了之后,再插入数据!

MyISAM 行存储格式:固定行格式,动态行格式,压缩行格式。MyISAM的行格式是根据定义字段的类型而定的,如果使用了可变长度的数据类型,就会产生动态行格式。如果使用的是固定长度的数据类型,就会产生固定行格式;

固定行格式:每行都有固定的尺寸;行存储的位置在行长度整数被的地方,方便查找;固定长度占用空间大;会自动过滤空格;

动态行格式:每行长度不一样,相对于固定行格式,不易被查找,占用空间小,更容易产生碎片;不会过滤空格;

压缩行格式

show table status  like 't'  \G;查看一些表信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值