Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2378654
  • 博文数量: 195
  • 博客积分: 3409
  • 博客等级: 中校
  • 技术积分: 3954
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-24 10:21
个人简介

● ITPUB名人堂嘉宾 ● ChinaUnix社区博客专家 ● ChinaUnix社区Oracle板块版主 ● 优酷网认证音乐牛人:EricGuitar ● SDOUG 核心成员 ●E-mail:gaoqiangdba@163.com

文章分类

全部博文(195)

文章存档

2020年(7)

2019年(7)

2016年(5)

2015年(36)

2014年(23)

2013年(15)

2012年(23)

2011年(61)

2010年(18)

分类: Mysql/postgreSQL

2020-02-15 22:46:55

  在8.0版本中,MySQL添加了并行查询特性,在其一贯高性能的查询特性上又一定程度的提升了查询效率。通过设置参数innodb_parallel_read_threads来改变并发线程数,就能开始并行扫描功能,默认这个值为4。


mysql> set local innodb_parallel_read_threads=1;
Query OK, 0 rows affected (0.00 sec)
mysql> select count(*) from guitars;
+-----------+
| count(*)  |
+-----------+
| 159927400 |
+-----------+
1 row in set (2 min 13.53 sec)
mysql> set local innodb_parallel_read_threads=DEFAULT;  ---设置成了默认值4
Query OK, 0 rows affected (0.00 sec)
mysql> select count(*) from guitars;
+-----------+
| count(*)  |
+-----------+
| 159927400 |
+-----------+
1 row in set (29.65 sec)
mysql> set local innodb_parallel_read_threads=32;
Query OK, 0 rows affected (0.00 sec)
mysql> select count(*) from guitars;
+-----------+
| count(*)  |
+-----------+
| 159927400 |
+-----------+
1 row in set (4.95 sec)


  后面多轮的测试,发现在参数设置成64的时候,反而比前一级别32的要慢一些。因此,在进行并行测试的时候需要注意以下几点:
1、上线前需要进行多轮测试,以寻求较好的并行效果,找到最佳实践参数值
2、对于zaihuihuanei满足并行查询条件的语句,可考虑会话级别的参数设置,在会话内提升参数,会话后恢复默认(8.0版本)
3、并行数值设置建议不高于CPU数量
4、关注服务器高峰期CPU性能
5、目前并行查询满足的条件:
a.无锁查询
b.聚集索引
c.insert into table a ... select
d.需要参数设置为非0


  通过这一次的测试,认识到MySQL作为最流行的数据库的快速发展能力,并发能力在不断的发展和适应更多的场景。相信MySQL在不久的将来,会带来更多令人惊喜的功能特性。

阅读(1415) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~