gpt4 book ai didi

MYSQL 按日期分组性能查询

转载 作者:行者123 更新时间:2023-11-29 06:36:12 24 4
gpt4 key购买 nike

我目前正在编写一个将在 MySQL 数据库中的 MYISAM 表上多次运行的查询。

查询需要大量(可能高达 100,000+)行并获取每月总计。我目前使用的 SQL 是

SELECT DATE_FORMAT(ct_cdatetime, "%m-%Y") AS Month, SUM(ct_total), SUM(ct_charge)
FROM client_transaction
WHERE (...omitted for this example...)
GROUP BY DATE_FORMAT(ct_cdatetime, "%m-%Y") ORDER BY ct_cdatetime ASC

我知道强制 MySQL 将日期转换为字符串的性能问题。

会更快和/或更好地练习吗?
  • 1) 保持原样
  • 2) 选择所有行并在 PHP 中将它们分组大批。
  • 3) 在数据库中有一个 month-year int 字段并更新它何时添加行(例如 714 表示 2014 年 7 月)?

最佳答案

哪个最快这个问题的答案很简单:尝试两者并进行测量。

SQL 端的性能并没有真正受到日期转换的影响。是由group by决定的,特别是对于ordering的排序。

我怀疑在应用程序端传输数据和完成工作会更快。特别是,您必须将大量数据从数据库传输到应用程序。然后,您必须在应用程序中复制将在数据库中完成的工作。

但是,应用程序端的内存算法可能比数据库端更通用的算法更快。在应用程序端完成工作可能会更快。

关于MYSQL 按日期分组性能查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24598396/

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