mysql的create database

通过create database test1 语句创建的数据库,

就是在数据目录下创建了一个 test1 的文件夹,里面再建一个 db.opt 的文件,包含了字符集信息

mysql没用全局的database数据表,所以文件夹就是数据库,删掉数据库是只需把这个文件夹删掉就可以了,拷贝也是一样,,

这样实现比较简单

 

 

在innodb的创建表时,

先会在数据库目录创建一个后缀为 frm 的表定义文件, mysql_create_frm,这主要是为C++部分使用的;在C++部分有一套事务,锁,表的处理,在下面的innodb还有一部分

在inndodb之中,之后会在三张系统表中增加相应的元组, sys_tables, sys_columns, sys_indexs,

当在建表时,如果没有指定主键,那么就会把三个系统列rowid, trx_id, rollback_ptr 三个列和表的其它列一起,建一个cluset index,主键是 rowid。并没有像pg那样有专门的表,innodb中表就是索引,如果是指定主键,则是根据主键来建cluset index,所以如果建好表之后,修改别的列为主键时,相当于重新建表了,速度是非常慢的

 

 

删除表时,执行的是一个很大的SQL存储过程,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值