php - 如何进行数百万数据选择

标签 php mysql database-performance

我有一个表,用于存储所有客户的特定更新。

一些示例表:

record_id |客户 ID |单位 ID |时间戳|数据1 |数据2 |数据3 |数据4 |更多

当我创建应用程序时,我没有意识到这个表会增长多少——目前我在 1 个月内拥有超过 1000 万条记录。当 php 由于花费的时间而停止执行时,我遇到了问题。某些查询会根据 time_stamp + customer_id + unit_id 生成 top-1 结果

您建议如何处理此类问题?例如,我可以为每个客户创建新表,尽管我认为这不是一个好的解决方案。

我脑子里没有好的解决方案。

最佳答案

如果您在云端(您需要在服务器和数据库之间移动数据),请忽略。

将所有逻辑移至服务器

最快的查询是 PRIMARYSELECT WHERE。无论您的数据库有多大,它都会以 1 行表的速度返回(只要您的硬件不失衡)。

我无法确切地知道您正在对查询执行什么操作,但首先将所有排序和限制数据下载到 PHP 中。获得所需内容后,直接在 record_idSELECT 数据(我假设这是您的 PRIMARY >).

看起来您的按需数据的计算量相当大且巨大,因此我建议使用更快的语言。 http://blog.famzah.net/2010/07/01/cpp-vs-python-vs-perl-vs-php-performance-benchmark/

此外,当您开始在服务器而不是数据库上进行排序和限制时,您可以开始识别快捷方式以进一步加快速度。

这就是服务器的用途。

关于php - 如何进行数百万数据选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14887265/

相关文章:

javascript - 如何验证股市数据

php - 如何在 Firefox 中使用 php curl 发送推送消息

php - .htaccess 在 linux 服务器上不工作

MongoDB - 聚合性能调优

mysql - 如何更快地加载mysql中的数据?

php - 在 postgresql PDO 连接中设置连接超时参数

python - 使用定时线程终止查询

mysql - 如何使用 MySQL 实现图形数据库?

mysql - 将 Biginteger 转换为 long 会导致错误

Mysql 在非常大的表上计算性能