gpt4 book ai didi

sql - 如何优化 MySQL 查询?

转载 作者:搜寻专家 更新时间:2023-10-30 22:21:31 24 4
gpt4 key购买 nike

我目前正在使用带有 PHP 的 mysql,因为这是我学到的,而且从未使用过任何其他东西。在我当前的项目中,我有一个包含 1000 万行和大约 10 列的数据库,当我在本地 (windows) 环境和生产 (linux) 环境中进行复杂调用时,我发现它非常慢。两台服务器都有超过 10GB 的内存。我已经安装了 Zend AMF,因此所有数据传输都是二进制的。

我是自学的,从来没有人教过我高效 dbm 的来龙去脉。我的第一个想法是将数据库分成多个 block ,然后更改我所有的 php 代码。看起来很麻烦,而且 php 代码中容易出错……有没有更好的方法我不知道?

我的用户界面是基于 Flash 的,如果这意味着显着提高速度,我愿意更改中间件。在这一点上我真的只知道PHP是一个中间件。

此时我不想学习另一个数据库,并且认为必须有一些交易技巧来优化我的性能,但我想在我破解我的数据库之前获得一些想法。

仅供引用:从用户的角度来看,数据库是只读的。用户没有向数据库中输入任何新数据。此外,在数据库的 1000 万行中,只有大约 200,000 行被频繁使用。 (我不知道哪些 200K 行被大量使用,因为记录此信息可能会进一步降低我的数据库速度)。

每次调用都是这样的:

SELECT   name, id, address 
FROM table
WHERE date_added=?
LIMIT ?,?
ORDER BY no_children ASC

...和其他各种“选择”语句。

最佳答案

你有index吗?在 date_added 字段?如果没有,创建一个,然后重试:

CREATE INDEX ix_date_added on table (date_added);

您可能还有兴趣查看 MySQL 引用手册中的以下文章:

您还应该尝试使用 EXPLAIN在您的 SELECT 语句之前查看查询是否将使用您的任何索引。这通常是正确解决性能问题的第一步。

关于sql - 如何优化 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3126452/

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