gpt4 book ai didi

php - MySQL需要太多时间来显示100万条数据

转载 作者:行者123 更新时间:2023-11-30 22:38:44 26 4
gpt4 key购买 nike

我正在开发一个包含数百万数据的应用程序,我需要在一个页面中列出所有数据。起初我在一个查询中获取所有数据,分页是在客户端中完成的。但这需要将近 15 分钟才能加载完整集。所以我更改了每个请求获取 10 行的代码,并且分页是在服务器端上完成的。但性能仍然达不到标准。那么所有的事情都应该做些什么才能快速获取数据或者处理海量数据的最佳方式是什么。

我获取数据的查询:

更新:

SELECT  w.work_order_id,
(SELECT CONCAT(user_fname, ' ', user_lname) FROM users WHERE user_id = w.created_by) AS created_by,
CASE w.assignee WHEN 0 THEN 'All' WHEN -1 THEN 'Unassigned' ELSE CONCAT(u.user_fname, ' ', u.user_lname) END AS assignee
FROM FiveVan_work_orders w
LEFT JOIN users u ON (u.user_id = w.assignee)
WHERE ( w.work_order_status != 'Deleted' && w.work_order_status != 'Closed') ORDER BY w.created_on DESC LIMIT 0,10;

我已经为页面创建了索引,这是解释查询的结果

+----+--------------------+-------+--------+-------------------+---------------+---------+-------------------------------+--------+------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+-------+--------+-------------------+---------------+---------+-------------------------------+--------+------------------------------------------+
| 1 | PRIMARY | w | index | work_order_status | work_order_id | 790 | NULL | 340319 | Using where; Using index; Using filesort |
| 1 | PRIMARY | u | eq_ref | PRIMARY | PRIMARY | 4 | fivevan_loadtest.w.assignee | 1 | NULL |
| 2 | DEPENDENT SUBQUERY | users | eq_ref | PRIMARY | PRIMARY | 4 | fivevan_loadtest.w.created_by | 1 | NULL |
+----+--------------------+-------+--------+-------------------+---------------+---------+-------------------------------+--------+------------------------------------------+

最佳答案

WHERE  ( w.work_order_status != 'Deleted' &&
w.work_order_status != 'Closed')
ORDER BY w.created_on DESC

如果 只有 work_order_status 值,则将其更改为

WHERE w.work_order_status = 'Open'
ORDER BY w.created_on DESC

并添加

INDEX(work_order_status, created_on)

如果有多个其他值,这可能会起作用(不太好):

INDEX(created_on)

为了获得更好的性能,您需要“记住您离开的地方”而不是使用 OFFSET。我在 my pagination blog 中对此进行了讨论.

关于php - MySQL需要太多时间来显示100万条数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676640/

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