在PHP / MySQL DB中存储和检索数组的最佳方法是什么

时间:2009-12-31 00:20:25

标签: php mysql performance arrays

让我们说我想构建一个应用程序,它将从数据库中提取URL链接并在页面上显示50。我只是以链接为例。

如果我必须存储多个值,如果每个链接/记录发布一个数组到1个mysql字段,该怎么办?

如果每个链接有5个项目,我可以在页面上有5个项目的数组,由逗号分隔的5个项目的列表,或者我可以使用json编码/解码,什么是最好的性能保存一个链接到数据库并在页面上显示,类似于implode / explode与项目列表,json编码/解码,或序列化/取消序列化数组?

2 个答案:

答案 0 :(得分:2)

如果您不想使用多个表,则序列化可能是最好的。原因是它处理特殊字符。如果您使用以逗号分隔的列表,那么您将需要担心已经包含逗号的值。序列化/反序列化已经处理了这个。但问题是序列化并不是非常快,尽管你的数组听起来很简单。

最好的还是拥有多个表格,因为它可以让您在以后更轻松地搜索和/或操作数据。 PHP中也很难创建一个循环来生成一个SQL,它将多个记录添加到第二个表中(将它们与主表中的父表相关联)。

顺便说一句,在SO上有许多类似的问题:Optimal Way to Store/Retrieve Array in Table

答案 1 :(得分:2)

最好的方法,因为你要求它,是创建一个表来描述你要保存的数据,然后为每个元素插入一行。在您的示例中,这意味着您需要两个表; pageslinks,其中links.page_id引用pages.id中的外键。

相关问题