gpt4 book ai didi

php - 如何使用Union优化Mysql Select查询?

转载 作者:行者123 更新时间:2023-11-29 22:13:14 25 4
gpt4 key购买 nike

我正在使用 InnoDb 存储引擎开发 mysql 数据库。我的表结构如下:

表名称:archiveincomingsms

enter image description here

索引详细信息:archiveincomingsms

enter image description here

表名称:archiveoutgoingsms enter image description here

索引详细信息:archiveoutgoingsms enter image description here

上面是我的表结构及其索引详细信息!

两个表分别至少有超过 10 亿条记录(行)。

现在的问题是,当我想执行以下 SqlQuery 时:

      ( SELECT  id AS ID, `recieved_datetime` `Date`, 'MT' AS Type, src_adress AS Msisdn,
TEXT as text, CHAR_LENGTH(TEXT) AS QtyOfSymbols, 'OK' AS `Status`
FROM archiveincomingsms
WHERE 1=1
AND recieved_datetime BETWEEN '2015-06-14 00:00:00'
AND '2015-07-14 23:59:59'
)
UNION ALL
( SELECT id AS ID, `send_date` `Date`, 'MO' AS Type, scr_adress AS Msisdn,
TEXT as text, CHAR_LENGTH(TEXT) AS QtyOfSymbols, 'OK' AS `Status`
FROM archiveoutgoingsms
WHERE 1=1
AND send_date BETWEEN '2015-06-14 00:00:00'
AND '2015-07-14 23:59:59'
)
ORDER BY `Date` ASC
LIMIT 0 ,100

以上查询从表中获取数据需要超过 30 秒的时间。另一个是我也必须计算行数以用于分页目的,并且也需要超过 30 秒的时间。

总体执行时间超过1分钟。有没有什么合适的方法来优化时间?我必须把时间缩短到最多 5 秒。 !怎么可能?我使用的是mysql数据库!

最佳答案

enter image description here这是此查询解释的结果!

图片可以在新标签页中打开查看!这里太小了!

关于php - 如何使用Union优化Mysql Select查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31427367/

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