使用复杂查询改善MySQL响应时间

时间:2013-09-25 19:24:09

标签: php mysql sql

好的,我做了这么久的查询。它工作得很完美,但需要15-30秒才能给我结果......我不是SQL专家所以我想问一下是否有办法改善MySQL的响应时间...也许这样做可以超过1个查询或类似的东西。

PS:它是一个BIG数据库,包含大公司的所有财务信息。

PS2:我用PHP连接到MySQL。

SELECT
    aplicaciones.importe, facturas.cliente, facturas.porcenRUC, 
    facturas.porcenTB, facturas.codcmp, facturas.prefijo, facturas.numero,
    clientes.vendedor, comisiones.ruc, comisiones.trb, recibos.prefijo as prefijoR,
    recibos.numero as numeroR
FROM recibos, aplicaciones, facturas, clientes, comisiones
WHERE 
    (recibos.fechaAcrMax BETWEEN STR_TO_DATE('$dd', '%d/%m/%Y') AND 
    STR_TO_DATE('$hh', '%d/%m/%Y')) AND recibos.base = aplicaciones.base AND 
    recibos.identificador = aplicaciones.identificador AND 
    recibos.base = facturas.base AND
    aplicaciones.aplica_a_identificador = facturas.identificador AND 
    facturas.cliente = comisiones.cliente AND
    facturas.cliente = clientes.cliente 
ORDER BY clientes.vendedor ASC

1 个答案:

答案 0 :(得分:2)

第一步是查看是否可以添加索引。再次运行查询,但在开始时使用“EXPLAIN”,结果应该可以帮助您确定正在使用的索引以及可以或应该添加的索引。

mysql网站上的文档应该有所帮助:http://dev.mysql.com/doc/refman/5.0/en/using-explain.html

有关索引的文档,请访问:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html