mysql默认引擎怎么查 mysql 默认引擎( 四 )


(1)自动增长列:
InnoDB表的自动增长列可以手工插入 , 但是插入的如果是空或0,则实际插入到则是自动增长后到值 。可以通过"ALTER TABLE...AUTO_INCREMENT=n;"语句强制设置自动增长值的起始值,默认为1,但是该强制到默认值是保存在内存中,数据库重启后该值将会丢失 。
可以使用LAST_INSERT_ID()查询当前线程最后插入记录使用的值 。如果一次插入多条记录 , 那么返回的是第一条记录使用的自动增长值 。对于InnoDB表,自动增长列必须是索引 。如果是组合索引,也必须是组合索引的第一列 , 但是对于MyISAM表,自动增长列可以是组合索引的其他列,这样插入记录后,自动增长列是按照组合索引到前面几列排序后递增的 。
(2)外键约束:
MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引 。
Mysql存储引擎Myisam小结myisam在mysql5.5之前是默认存储引擎,从5.5开始mysql的默认存储引擎为innodb.目前mysql版本myisam仍然有广泛的应用.mysql的一些系统表和临时表存储引擎仍然使用的myisam.这里的临时表指的是在查询过程中对查询的数据进行排序,分组等操作,数据量超过一定数量时,由查询优化器建立的临时表.
myisam每个表都有三个文件组成:
.frm 表结构描述
.MYD 存储数据
.MYI 存储索引
myisam存储引擎的锁级别为表级锁,myisam为表级读共享写独占锁.myisam读并不会完全阻塞写,myisam允许在读的同时在表的后面追加对应的数据.concurrent_insert控制对应的并发性.
concurrent_insert可以设置为以下3个值:
在5.0之前,myisam只支持文件大小为4G的文件,再次之后支持256TB大小的文件.如果表要大于4G,需要设置MAX_ROWS和AVG_ROW_LENGTH的值.
相对于innodb存储引擎来说myisam占用的表空间更加少 。myisam支持通过myisampack对单个表做进一步压缩 。通过myisampack进行压缩,myisampack能过将数据压缩40%~70% 。但是通过myisampack压缩后的数据该表将变成只读 。压缩后需要对该表进行检查,使用工具myisamchk 。
myisam存储引擎不支持事务 。update后无需commit将会自动提交,也无法回滚 。正是如此,myisam没有redo log以及undo log文件 。在迁移数据对应的表的时候,只需要将对应的表拷贝到目标机器上就可以使用了 。但是由于没有redo log和undo log , 这样容易造成表损坏 。
通过check table tablename和repair table tablename两条命令表进行修护 。
myisam含有一些空间函数 。一些地理信息系统的空间应用需要使用这种类型的存储引擎 。
【mysql默认引擎怎么查 mysql 默认引擎】关于mysql默认引擎怎么查和mysql 默认引擎的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读