php - 使用 MySQL 代替文本文件或文件名来确定 PHP 的图像顺序是更快还是更好?

标签 php mysql

我将图像存储在与我的 PHP 网站上的文章相关的文件夹中,并希望根据作者输入设置显示图像的顺序。我首先在文件前面加上一个数字来命名文件,但正在考虑将顺序记录在文本文件中,以避免重命名每个文件并保留其原始文件名,或者可能将顺序存储在 MySQL 表中。

我的问题是关于最佳实践和速度的——每次加载文章时,它都必须找出图像的顺序来显示它们。我希望就哪种方法最好和最快获得一些意见。

例如,与使用 MySQL 查询和更新语句相比,使用 PHP 读取文件夹中的文件名列表或打开文本文件并读取内容是否慢得多?

最佳答案

我会说很多取决于您的基本硬件/文件系统/mysql 连接性能。一次访问磁盘,只读取图像很可能是您最快的选择。但是您需要提前手动命名文件。

Mysql 需要 TCP 或 *NIX 套接字连接,这可能会减慢速度(但很大程度上取决于您拥有的图片数量以及数据库链接的“质量”)。如果您有很多文件,性能损失可能可以忽略不计。尽管如此,只从文件中读取可能会更快,而无需费心建立数据库连接;不过,您仍然需要为订购记下 ID/文件名对应关系。

在您的情况下,我想尝试的是查看 php stat 命令,看看它是否可以帮助您对图片进行排序。根据您拥有的图片数量(数量越少效果越好),性能可能不会受到严重的性能影响,并且您将无法保留单独的图片/创建日期元组列表。随着图片数量的增加,文件列表方法在我看来是解决问题的合理方法。不过,随着图片数量的增加,仅对事物进行基准测试就可以告诉您真相。因为,我认为,您可以预期会有很多可变性,具体取决于您的具体情况。

关于php - 使用 MySQL 代替文本文件或文件名来确定 PHP 的图像顺序是更快还是更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003454/

相关文章:

php - 从 PHP 服务器执行 hadoop jar 失败。没有权限

php - 如何在不知道文件扩展名的情况下按其名称取消链接()?

php - 在多个服务器之间使用 phpass 有多安全?

mysql - 在以下情况下是否有办法维护数据库关系(pk/fk)

mysql - 使用子查询保存查询结果的最佳方法是什么?

mysql - cakephp 而不是 user_id 我如何在 View 中获取例如用户名

PHPMailer 缺少英语语言文件

javascript - 我应该使用哪种文本编辑器进行HTML编码?

mysql - 尝试将外键设置为字符串数据类型

mysql - 如何从表 2 创建总和并显示数据表 1 和表 2