mysql 5.6 新特性_mysql 5.6 新特性

mysql 5.6 中的新特性:

1.gtid复制:在一主多从的架构中,当主服务器挂掉之后,需要从其他的从服务器中选出一台作为新的主服务器,

一台从服务器成为新的主服务器之后,其他的从服务器需要连接新的主服务器,从新的主服务器中获得数据。

在普通的复制架构中,从服务器连接新主服务器无法找到复制位置(mmm,mha架构除外),因此只能重新做主从,

这个操作是相当痛苦的和耗时的。gtid复制可以很好的解决这个问题,从服务器链接新的主服务器的时候,

不需要人为指定复制位置,这个mysql自动完成。

详情请见:http://dwchaoyue.blog.51cto.com/2826417/1559764

2.多线程复制:

MySQL 5.6之前的版本,同步复制是单线程的,队列的,只能一个一个执行,

在5.6里,可以做到多个库之间的多线程复制,例如数据库里,存放着用户表,商品表,价格表,订单表,那么将每个业务表单独放在一个库里,

这时就可以做到多线程复制,但一个库里的表,多线程复制是无效的。

注,每个数据库仅能使用一个线程,复制涉及到多个数据库时多线程复制才有意义。

mysql> show global  variables  like  'slave_pa%';

+------------------------+-------+

| Variable_name          | Value |

+------------------------+-------+

| slave_parallel_workers | 2     |

+------------------------+-------+

这里显示的两个sql线程,一般情况下,在复制架构中有几个库,就将slave_parallel_workers 设置为多少。

使每个库各自对应一个库。

3.缓存预热:在机器刚开始开启的一段时间内,内存基本上是空的,没人任何的数据,

所以在启动之后的一段时间内,机器显得很慢。mysql 5.6 专门针对innodb设计了一种

缓存预热机制。这个可以通过变量进行设置:

mysql> show global  variables  like  'innodb_buffer_pool_%at%';

+-------------------------------------+-------+

| Variable_name                       | Value |

+-------------------------------------+-------+

| innodb_buffer_pool_dump_at_shutdown | OFF   |

| innodb_buffer_pool_load_at_startup  | OFF   |

+-------------------------------------+-------+

参数解释:

innodb_buffer_pool_dump_at_shutdown:当机器正常关闭的时候讲内存中的数据dump到磁盘上

并且默认生成一个缓存文件 ib_buffer_pool

innodb_buffer_pool_load_at_startup:当机器启动的时候将ib_buffer_pool 中的数据加载到内存中。

4.mysql5.6之前的版本不支持now()作为默认值

例如:

version:5.1.34-log

mysql> use  tempDB  ;

Database changed

mysql> select version();

+------------+

| version()  |

+------------+

| 5.1.34-log |

+------------+

1 row in set (0.00 sec)

mysql> drop table if exists  tt  ;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE `tt` (

->   `db` char(64) NOT NULL,

->    dt  datetime not null  default now()

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ERROR 1067 (42000): Invalid default value for 'dt'

versoon:5.6.20-log

mysql> use Test  ;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> drop table if exists  tt  ;

CREATE TABLE `tt` (

`db` char(64) NOT NULL,

dt  datetime not null  default now()

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql> CREATE TABLE `tt` (

->   `db` char(64) NOT NULL,

->    dt  datetime not null  default now()

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Query OK, 0 rows affected (0.16 sec)

mysql>

mysql> select version();

+------------+

| version()  |

+------------+

| 5.6.20-log |

+------------+

1 row in set (0.03 sec)

mysql5.6 的相关介绍:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值