php - 如果我将详细信息行合并到标题表中的单个列中会更快吗?

标签 php mysql optimization explode

所以我有一个以相册组织的图片库网站,所以 存储相册图片的db表,基本上是这样的方案:

album_id | images_link
112      | 1.jpg
112      | 2.jpg
112      | 3.jpg
112      | 4.jpg
112      | 5.jpg
112      | 6.jpg
112      | 7.jpg
112      | 8.jpg
112      | 9.jpg

所以为了避免超长的数据库表,我想也许可以将相册的所有图像存储到一个单元格中,如下所示:

album_id | images_link
112      | 1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg, 6.jpg, 7.jpg, 8.jpg, 9.jpg

我的意思是数据库大小当然会保持不变,但会有显着 阅读的行数更少。 我将使用 explode 函数来拆分和提供每个图像文件链接。这是 明智的选择?我不确定 explode 函数是否像获取 大型数据库。我想听听您的意见。

看到问题是图像名称不是那么短,images_link 行设置为 27 个字符 所以我设置的每个相册限制为 30 张图片,因此预计单个单元格 稍后达到 810chars。我从来没有用过 varchar 来存储那么多字节,是 在这种情况下最好使用 VARCHAR 还是 TEXT ?我知道 VARCHAR 更快。

提前谢谢你。

最佳答案

你的第一个方案比第二个好。

更利于维护:

  • 只加一行放一张新图片
  • 只删除一行退出一张图片
  • 如果你想编辑图片的路径你只需要更新 那一行……

稍后,如果您想列出画廊及其第一张图片,您只需执行 JOIN...

对于你的第二个模式,在类别表中有一个名为“list_of_images”的字段没有区别......

关于php - 如果我将详细信息行合并到标题表中的单个列中会更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771861/

相关文章:

php - 读取 excel 文件并将其存储在 mysql 表中的最佳方式。?我的表包含 4 列

php - 无法访问具有键数组子集的数组中的表单值

mysql - 将 mysql 中的行从一个表更新到另一个表

mysql - 添加索引优化MySQL查询

api - 谷歌路线优化

php - PDO错误我不知道如何修复

php - 如何使用循环编写动态sql查询

PHP 代码修改以仅检索要添加到 PDF 的第一张图像

php - 总价未显示在 PHP 的购物车中

python - 如何使用 numpy 优化数组上的双循环?