并行使用说明
有两种方式来使用并行查询:
- 方法一:设置系统参数。
通过全局参数force_parallel_execute来控制是否启用并行查询;使用全局参数parallel_default_dop来控制使用多少线程去并行查询。上述参数在使用过程中随时可以修改,无需重启数据库。
例如,若开启并行执行,并且并发度为4:
force_parallel_execute=on; parallel_default_dop=4;
可以根据实际情况调整parallel_cost_threshold参数的值,如果设置为0,则所有查询都会使用并行;设置为非0,则只有查询语句的代价估值大于该值的查询才会使用并行。
- 方式二:使用hint语法。
使用hint语法可以控制单个语句是否进行并行执行。在系统默认关闭并行执行的情况下, 可以使用hint对特定的SQL进行加速,hint指定的并行度不能大于parallel_max_threads,否则将不能启用SQL语句的并行查询。相反地,也可以限制某类SQL进入并行执行。
- SELECT /*+ PQ */ … FROM … 使用默认的并发度4进行并行查询。
- SELECT /*+ PQ(8) */ … FROM … 使用并发度为8进行并行查询。
- SELECT /*+ NO_PQ */ … FROM … 这条语句不使用并行查询。
通过TPC-H测试可以得到使用MySQL并行查询优化特性前后的性能提升效果,详细测试步骤请参见《TPC-H 测试指导(for MySQL)》。
从测试数据来看,采用MySQL并行查询优化特性后可以提高并行度,查询性能可以提升1倍以上(性能提升与并行度有关)。
父主题: MySQL OLAP 并行优化 特性指南