MySQL View - 性能不佳

标签 mysql database view

我将一些表格加入到一个 View 中以便于编码。现在,当我用那个 View 加入几个表时,我的性能很差。当我看到更多行时,这些查询的速度会大大降低。我使用这个 View 编写了很多代码,所以我不喜欢重写所有这些查询的解决方案 :)。当我将它与其他表连接时,是否有任何优雅的解决方案可以加快此 View 的速度?

这是我的一个查询,其中 tickets_parsed 是一个 View :

SELECT detailValue, SUM(total_tickets) AS total_tickets, SUM(money_in) AS money_in, SUM(handling_charges) AS handling_charges
FROM (
    SELECT bsid, COUNT(*) AS total_tickets, SUM(amount_total) AS money_in, SUM(handling_charges) AS handling_charges
    FROM `bingo`.tickets_parsed
    WHERE tickettime BETWEEN '$date' AND '$date2a'
    AND ticketstatus <> 'CLOSED'
    GROUP BY bsid
    ORDER BY NULL
) AS sub
NATURAL JOIN betshop_details
WHERE detailID = 5
GROUP BY detailValue
ORDER BY NULL

最佳答案

您的查询在子查询中使用 View ,这可能会阻止它使用索引。但我不确定子查询是否必要。

你可能会使用这样的东西:-

SELECT a.detailValue, COUNT(*) AS total_tickets, SUM(b.amount_total) AS money_in, SUM(b.handling_charges) AS handling_charges
FROM bingo.tickets_parsed a
INNER JOIN betshop_details b
ON a.bsid = b.bsid
WHERE a.detailID = 5
AND b.tickettime BETWEEN '$date' AND '$date2a'
AND b.ticketstatus <> 'CLOSED'
GROUP BY a.detailValue
ORDER BY NULL

关于MySQL View - 性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19830846/

相关文章:

php - 在 Web 应用程序中简化并提高表单/crud 操作的效率?

mysql - 在没有外键的情况下对不同表中的两个不同列进行求和和差异

database - 在PostgreSQL中联接两个表,其中一个内容为Array字段,另一个为该数组的主表

json - 机器学习友好的数据组织

sql - 为什么数据库在更新行时执行删除和插入操作?

c++ - Direct3D9 无法让垂直 fov 相机工作

php - SQL Select 对多列进行计数并排序

mysql - 在 Mysql 语法中替换为 OR

ios - 如何在 Xcode 中旋转 UISwitch?

Android View 动画在屏幕外 View 时停止