您把环境弄好,表弄好,重新测一下把有问题的SQL发出来就好了
嗯呢好的,现在ds 基准压测数据导入好了,我先测试一下咱们之前exec_mem_limit生效了吗
show global variables like ‘%exec_mem_limit%’;
curl http://be_host:http_port/varz | grep mem_limit
从磁盘load数据进去内存吧,等下再观察一下
是生效了,你刚导入完数据,执行以下 ANALYZE FULL TABLE xxx
MySQL [tcpds10tmp]> ANALYZE FULL TABLE web_sales;
ERROR 1064 (HY000): Invalid timeout. Timeout should between 1 and 259200 seconds
MySQL [tcpds10tmp]> ANALYZE FULL TABLE web_sales;
ERROR 1064 (HY000): Invalid timeout. Timeout should between 1 and 259200 seconds
MySQL [tcpds10tmp]> ANALYZE FULL TABLE web_site;
ERROR 1064 (HY000): Invalid timeout. Timeout should between 1 and 259200 seconds
现在建完表之后,发现查询性能太差了,之前一个sql3 9.84s 7.75s 4.63s
,现在100 rows in set (2 min 27.39 sec)
set global query_timeout = 86400;
第一次查询都是走磁盘,是会慢很多,后面走内存就快了,看看这些参数都设置好没
fe.conf
enable_pipeline_engine=true
parallel_fragment_exec_instance_num=60
pipeline_dop=0
exec_mem_limit = 515396075520
be.conf
mem_limit=95%
set global xxx=xxx; 服务器重启后也会失效的,需要在fe.conf或be.conf设置好才会持久化。
嗯嗯好的,我在配置加了
ANALYZE FULL TABLE xxx
先把所有的表 收集统计信息后再测试吧
这个我们执行失败了,这个需要怎么搞呢
设置这个后执行ANALYZE FULL TABLE xxx 还是报错吗?
不报错了,现在在执行力呢
是每个表都要执行对吧,如果是我就写一个for循环