left join company cp on cb.company_id = cp.company_id
limit 3313445,10;
复制代码
先不使用AP引擎测试查询五次:
测试次数耗时第一次10 rows in set (12.64 sec)第二次10 rows in set (12.77 sec)第三次10 rows in set (12.60 sec)第四次10 rows in set (12.61 sec)第五次10 rows in set (12.59 sec)可以看到五次测试结果都是稳定在12秒左右,平均耗时12.64/s:
使用Rapid引擎测试
left join company cp on cb.company_id = cp.company_id
limit 3313445,10;
复制代码
同样测试查询五次:
测试次数耗时第一次10 rows in set (0.48 sec)第二次10 rows in set (0.47 sec)第三次10 rows in set (0.46 sec)第四次10 rows in set (0.48 sec)第五次10 rows in set (0.46 sec)可以看到Rapid引擎出手即是秒杀,平均耗时0.47/s:
改造前(平均耗时12.64/s)和改造后(平均耗时0.47/s)对比测试结果:
总体来说改造后约提升了26.9倍:
如果我们选择使用HINT进行改造,就需要对原SQL语句进行相应修改。因此,我们将采用方案一来进行试验
greatsql> SET use_secondary_engine = ON;
greatsql> secondary_engine_cost_threshold = 0;
# 查看下执行计划
greatsql> explain select c.id, c.dept_id, c.user_id, c.type, c.source, c.charge_no, c.amount, c.from_bank, c.to_bank, c.receipt,c.status, c.remark, c.create_by, c.create_time, c.update_by, c.update_time,c.reason,c.fr_no , d.dept_name, dt.company_name, cp.company_name from charge c left join dept d on c.dept_id = d.dept_id left join user u on c.user_id = u.user_id left join dept_tax dt on c.dept_id = dt.dept_id left join dept_info di on c.dept_id = di.dept_id left join company_bank cb on di.sign_cbid = cb.id left join company cp on cb.company_id = cp.company_id limit 3313445,10\G