Myisam:
1.myisam是MySQL默认的存储引擎。myisam不支持事务,也不支持外键,优点是访问的速度快,对事物完整性没有要求(select,insert为主的应用都可以使用这个引擎来创建表)
2.myisam的表支持3种不同的存储格式,分别是静态表(字段都是固定长度,优点存储迅速,容易缓存。缺点:占用的空间通常比动态表多),动态表,压缩表,
静态表的数据在存储时会按照列的宽度定义补足空格,但是在应用访问的时候并不会得到这些空格,这些空格在返回给应用之前已经去掉(保存的内容后面带有空格,返回结果时会被去掉。)
1 CREATE TABLE myisam_char (NAME CHAR ( 10 )) ENGINE = myisam;
2 insert into myisam_char values ('abcde'),("abcde"),(" abcde "),("abcde ");
3 select name,length(name) from myisam_char;
从上面的例子可以看出,插入记录后面的空格都被去掉了,前面的空格保留了。
3.动态表中包含变长字段,记录不是固定长度的,这样存储的优点是占用的空间相对较少,但是频繁地更新和删除记录会产生碎片,需要定期执行OPTIMIZE TABLE语句或myisamchk-r命令来改善性能,并且在出现故障时恢复相对比较困难。
4.压缩表由myisampack工具创建,占据非常小的磁盘空间。因为每个记录是被单独压缩的,所以只有非常小的访问开支。