gpt4 book ai didi

mysql - 如何优化这个MySQL查询

转载 作者:行者123 更新时间:2023-11-29 23:49:17 27 4
gpt4 key购买 nike

我有这个 MySQL 查询,但速度很慢。

SELECT
d.idcartera,
concat(d.cedula, ':', planilla.fuerza, ':', planilla.cuotas, ':', d.libranza, ':', planilla.promotor) AS ClienteCedula,
concat(d.nombres, ':', planilla.fuerza, ':', planilla.cuotas, ':', d.libranza, ':', planilla.promotor) AS ClienteNombre,
d.valor,
d.tipo,
concat(d.ano, '/', d.mes, '-', left(d.tipo,3)) AS anoMes,
planilla.fuerza,
planilla.cuotas,
planilla.promotor
FROM cartera AS d
INNER JOIN cartera AS x ON d.cedula = x.cedula
INNER JOIN cartera AS y ON d.cedula = y.cedula
INNER JOIN planilla ON d.libranza = planilla.libranza
WHERE (d.tipo not like '%RI-%') AND (left(x.tipo, 3) like 'RC-') AND (left(y.tipo, 3) like 'RCN')
GROUP BY d.idcartera, d.cedula

抱歉,“y”表是为了过滤一些数据

最佳答案

对于查询的第一部分(查询和分组 cartera AS d),您应该考虑以下索引:

CREATE index i1a ON cartera(cedula, idcartera, tipo, liberanza);
CREATE index i1b ON cartera(idcartera, cedula, tipo, liberanza);

CREATE index i1c ON cartera(tipo, idcartera, cedula, liberanza); 

(根据您的 DBMS,如果“left/like”操作可以应用于索引列类型。

对于 x 和 y 的连接,您应该添加以下索引(如果尚未 PK):

CREATE index i2 ON cantera(cedula) (if you will use i1b or i1c)

对于 planilla 上的连接,添加 在 planilla(liberanza) 上创建索引 i3(如果尚未 PK)

关于mysql - 如何优化这个MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25729676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com