mysql存储引擎

mysql历史上最主要的存储引擎类型是MyISAM和InnoDB,mysql5.5之前的版本默认存储引擎类型是MyISAM,5.5之后改为InnoDB。


mysql常用基本命令

mysql -hlocalhost  -uroot -p123456                         -- 登录mysql客户端
select version();                                          -- 查看mysql版本号
select variables like '%default_storage_engine%';          -- 查看mysql默认存储引擎
show engines;                                              -- 查看当前支持哪些存储引擎
alter table ai engine = innodb;                            -- 修改表的存储引擎
start transaction;                                         -- 开始事务
commit;                                                    -- 提交事务
rollback;                                                  -- 回滚事务

MyISAM与InnoDB区别

特点MyISAMInnoDB
锁机制表锁行锁
事务安全支持
外键支持
表总行数计数支持

MyISAM不支持事务、也不支持外键,其优势是访问速度快,对于事务完整性没有要求或者以select, insert为主的应用基本上都可以使用这个引擎创建表。

某方面,意味着业务代码中写事务时,不要涉及到MyISAM引擎的表,否则会带来错误结果。

InnoDB提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM类型的存储引擎,InnoDB写的处理效率差一些,并且会占用更多的磁盘空间以保留数据和索引。

其实,对于外键这一块,实际互联网应用中也不建议使用外键和级联。阿里巴巴的数据库使用规范中,有相关的说明如下:

6.【强制】不得使用外键与级联,一切外键概念必须在应用层解决。
说明:(概念解释)学生表中的 student_id是主键,那么成绩表中的 student_id则为外键。如果更新学生表中的 student_id,同时触发成绩表中的 student_id更新,则为级联更新。外键与级联更新适用于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值