我需要改进这个sql的执行时间,这是我此刻正在使用的代码。对于小表,它表现良好,在第一个表的参与者,我有一个平均5000个条目。第二个,有6万多个。代码在第一个表中执行搜索,按ID进行筛选,并将与第二个表相同的ID分组,生成单个字符串。
SELECT `participant_name`,` participant cpf`, `participant fone`, GROUP_CONCAT (`idnumber` SEPARATOR ', ')
FROM `participants` to` p`
INNER JOIN` sorteio_18` as`s`
ON s.cpf = p.cpf_participant
GROUP BY `cpf_participante`
第一个表的结构如下
participant_id INT 11
participant_name VAR 100
cpf_participant VAR 14
participant_birthday DATE
participant_phone VAR 16
qtd_numbers INT 3
participant_email VAR 100
status_transacao INT 1
payment_form INT 1
cep_participante INT 8
lucky INT 10
city VAR 100
uf VAR 2
neighborhood VAR 100
address VAR 100
number INT 4
purchase_date DATE
order_number VAR 15
transaction VAR 100
code VAR 100
price_price DEC 10,2
第二个表是
idnumber INT 11
fullname VAR 100
phone VAR 16
email VAR 100
cpf VAR 14
cep INT 8
participant_id INT 11
neighborhood VAR 100
address VAR 100
active INT 1
有人能给我一个想法,如何提高这个sql的搜索时间,因为今天生成完整的查询需要10多分钟。欢迎任何建议。
对于写入的查询:
SELECT p.participant_name, p.`participant cpf`, p.`participant fone`,
GROUP_CONCAT(s.idnumber SEPARATOR ', ')
FROM participants p INNER JOIN`
sorteio_18 s
ON s.cpf = p.cpf_participante
GROUP BY p.cpf_participante;
我建议将cpf_partipante
定义为主键。然后在sorteIO_18(cpf,idnumber)
上有一个索引。
不过,使用起来可能会更快:
select p.*, -- whatever columns you want
(select group_concat(s.idnumber separator ', ')
from sorteio_18 s
where s.cpf = p.cpf_participante
) as idnumbers
from participant p;
这只需要上面描述的sorteIO_18
上的索引。
我有以下PHP代码在Laravel正在执行一个MySql查询: 执行此查询需要很长时间。 我对所排序的列以及其他查询的许多列都有索引。 我该怎么办? 更新: 执行的查询: 结果:
我知道要冬眠。我有一个sql语句 我尝试用createCriteria和HQL实现它。 HQL: 问题是,此HQL的执行时间延长了10倍。并执行许多不必要的查询。我尝试使用注释字符串进行转换,它有了一些改进,但仍然比createCriteria查询长5倍,此外,我无法进行此转换 <代码>列表 版本数据防御
问题内容: 我有一个以datetime为参数的查询,我们观察到的是,如果通过变量提供datetime参数,则执行查询的时间比直接对参数进行硬编码要多2 -3倍,是否有任何原因或解决方案?对此 以下查询大约需要5分钟才能返回结果 虽然作为 它会在10到20秒内返回 我并不总是希望在列上使用索引进行搜索。 按照kevchadders的建议,我看到执行计划有很大的不同。使用日期变量的查询正在执行聚集索引
我有一个查询,我用了很长时间才找到。我在一个有500k行的表的单个分区上运行它。 查询如下所示: 我将其设置为,因此查询返回0行。 此查询大约需要30秒(如果我使用,则需要一分钟)。 当我运行完全相同的查询但使用时,需要2秒。 是什么原因导致查询在使用选择列时花费很长时间,而在使用选择计数(列)时不花费时间? 这是解释的问题 *项目[col0#607] -*过滤器(isnotnull(col1#6
我的Mongo Collection有大约2000个文档。当使用MongoTemplate find()方法和空查询(即我需要集合中的所有文档)和实体类、集合名称时,以列表的形式返回数据需要一分钟以上。有人能帮我让查询返回更快吗??下面是我正在使用的查询。
没有一个参数帮助我们在较短的时间内解决查询。