0

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

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

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
4

1 回答 1

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

于 2013-09-25T19:28:49.390 回答