gpt4 book ai didi

php - 使用 php 和 mysql 构建网站的更有效方法(兑现还是查询?)

转载 作者:行者123 更新时间:2023-11-29 22:00:27 26 4
gpt4 key购买 nike

背景:

我刚刚开始学习 PHP 来创建一个网站来显示 mysql 数据库中保存的投注程序的用户数据。

相关程序(用 python 编写的 IRC 投注机器人客户端)最初使用 .csv 文本文件数组来保存用户数据。然而我意识到这种数据存储方法确实不可扩展,并且在内存中保存了大量数据(因此需要大量文件写入和平面文本文件搜索)。

我重新实现了程序以使用 mySQL 数据库。我目前正在重写该网站。

对于每个用户,我为存储的每个变量查询一次 mySQL 数据库是否最好(因此需要数百个查询来构建用户列表页面)?或者我应该查询数据库一次,但将数据放入数组中,然后从该数组中挑选出我需要显示的变量?因此只查询一次,但在内存中保存更多数据并进行更多基于服务器的处理。

当前可以在这里找到原始网站(仍然可以使用 text.csv 文件):http://xcoins.co.uk (不过,这很快就会更新为基于 mysql 的版本(希望如此))

问题:

如果每个用户获取大量数据并使用 php 对其进行排序以显示按值排序的用户列表(查询返回的一些数据可能会被丢弃或可能被缓存),那么是否更好地查询 mySQL 数据库。或者我应该多次查询数据库以获取页面上所需的每个用户数据变量,但因此它只会获取所需的数据(但需要发送和接收大约 100 个查询才能显示单个用户列表页面) ?

通常可以接受多少个查询来显示包含大量数据的单个网页?

最佳答案

常见的方法是检索给定页面所需的尽可能多的信息(但不能更多),并使用此结果集来填充页面。

因此,要创建“客户资料”页面,您可以运行如下查询:

select p.name, 
p.address,
sum(t.amount) as balance
from profile p,
transactions t
where p.id = ?
and p.id = t.id

(对过时的连接语法表示歉意 - 旧习难改)。

这将为您提供一个 PHP 结果集,您可以将其打印到页面的适当位置。

当然,通常您无法在单个查询中检索所需的所有数据,要么是因为没有自然联接(例如,显示系统上的事件用户数量),要么是出于性能/复杂性原因。在这种情况下,您需要为这些数据元素编写单独的查询。

您可能想看看 PHP 框架,它为您抽象了很多这样的东西。

关于php - 使用 php 和 mysql 构建网站的更有效方法(兑现还是查询?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32713231/

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