MYSQL详解(3)-存储引擎

1.什么是存储引擎?

存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。

MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL 服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的 时候为你提供最大的灵活性。

2.简单操作-MySQL中如何查看引擎

1)、show  engines;   // 查看mysql所支持的存储引擎,以及从中得到mysql默认的存储引擎。

2)、show  variables  like 'default_storage_engine';    // 查看mysql 默认的存储引擎

3)、show create table tablename ;   //    查看具体某一个表所使用的存储引擎,这个默认存储引擎被修改了!

4)、show table status from database where name="tablename"

//准确查看某个数据库中的某一表所使用的存储引擎

5).可以通过engine关键字在创建或修改数据库时指定所使用到引擎。在创建表到时候通过engine=...type=...来指定所要使用到引擎。


3.存储引擎详解

MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。

1.InnoDB

InnoDB存储引擎提供了具有提交,回滚,和崩溃恢复能力的事务安全;

对比MYISAM,INnoDB写的处理效率较差一些,并且会占用更多的磁盘空间保留数据和索引;

自动增长列:

InnoDB表的自动增长可以手工插入,但是如果插入的是空或0,则实际上插入的是自动增长后的值;

注:通过“ALTER TABLE ...AUTO_INCREMENT=n”可以强制设置自动增长值的起始值,但是该强制的默认值是保存在内存中,数据重启后该值将会丢失。可以使用LAST_INSERT_ID()查询当前线程最后插入记录使用的值(如果一次插入的是多条,那么返回的是第一条记录使用的自动增长值);

对于InnoDB表,自动增长列必须是索引,如果是组合索引,也必须是组合索引的第一列;

外键约束:

MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候父表必须有对应的索引,子表在创建的时候也会自动创建对应的索引; 

注:当某个表被其他表创建了外键参照,那么该表对应的索引或主键被禁止删除;

set foreign_key_checks=0临时关闭外键约束;set foreign_key_checks=1打开约束;

InnoDB存储引擎支持mvcc的行级锁;


InnoDB存储引擎使用的是B+tree;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值