总结一下,MariaDB 10(MySQL5.6企业版分支)的主要新特性

① 支持48核的CPU,而5.5支持24核的CPU

② 内存热数据持久化,我们知道当系统重启或者mysql进程重启后,Innodb的内存池里面的热数据全部清空,需要重新把磁盘的数据缓存进来,然后根据 LRU最近最少使用原则,把热数据保持在内存里,冷数据踢出到磁盘里。这个过程是缓慢的。5.6里改进了这一点,会自动把内存的热数据导出到磁盘里,这样 mysql重启后,会立即从磁盘里导入Innodb内存池,减少了与磁盘IO的交互。

③ 在线DDL功能。5.5版本里,修改表结构会导致锁表,例如用户进件会卡住,假如表很大,锁的时间就会越长。所以在5.6版本里,解决了这一问题,DBA 在修改表结构的同时,用户进件,Innodb内部row_log记录了ddl变更过程中新产生的dml操作,并在ddl执行的最后将其应用到新的表中,保 证数据完整性。

④ 多线程复制(利用组提交方式实现),5.5版本里是单进程串行复制,通过sql_thread线程来恢复主库推送过来的binlog,这样会产生一个问 题,主库上大量的写操作,从库就有可能会出现延迟。在MariaDB 10通过多线程复制技术,如果主库上1秒内有10个事务,那么合并一个IO提交一次,并在binlog里增加一个cid = XX 标记,当cid的值是一样的话,就可以进行并行复制,通过设置多个sql_thread线程实现。

⑤ 半同步复制技术。默认是异步复制技术,主库提交了事务立即返回给客户端,而半同步复制技术是,主库提交了事务以后,要确保至少一个从库收到了binlog,才把请求反馈给客户端,这样就大大保障了数据安全。

⑥ 从库安全崩溃恢复。DBA经常会遇到1032(更新/删除数据找不到)和1062错误(主键冲突),这就是因为从库宕机后,relay-log是以文件形 式写盘,没有事务的概念。原理:从库执行了binlog的恢复,会刷盘relay-log,假如在刷盘那一刻宕机,relay-log里没有记录,那么从 库重启mysql进程后,就会执行两遍同样的SQL,造成同步复制报错。5.6是把relay-log记录一张innodb表里,当事务恢复完,首先更新 relay-log表,更新成功后再commit提交事务。

⑦ 对开发来说是一件喜事。很多开发喜欢子查询,好处:直观、容易实现业务SQL,但在5.5是个噩梦,性能极差,在5.6里解决了这一问题,通过优化器自动把子查询转化为join关联的SQL查询语句,对开发来说完全是透明的。

⑧ MariaDB 10提供了审计日志功能。

⑨ MariaDB 10提供了数据库级的连接池。我们知道PHP是短连接,没有连接池,在高并发环境下,很容易把数据打死。而JAVA的框架有很多优秀的连接池,就如同我们用的阿里的druid、c3p0等。

⑩ MariaDB 10支持动态列,也就是说,可以存JSON对象,可以像mongodb一样实现JSON的读取和存储。


附上基准测试图:

wKioL1XynzPS2xSGAAGjAnXAwbs976.jpg




















本文转自hcymysql51CTO博客,原文链接:http://blog.51cto.com/hcymysql/1693902 ,如需转载请自行联系原作者








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值