我正在开发一个社区门户网站,将来可能会迎合非常大的用户群。所有用户都有大约50个设置需要存储到用户元中。当用户保存对其配置文件的更改时,这些设置将经常被访问并用新值覆盖。
这将导致大量呼叫来更新\\u user\\u meta礼貌:大量用户基础和每个用户的大量设置。
这些大量调用update\\u user\\u meta是否会导致性能下降?
我看到的另一种方法是,将用户设置写入一个数组,然后使用单个调用update\\u user\\u meta将该数组存储到user meta。
这两种解决方案中哪一种似乎更好?
RegardsJohn公司
最合适的回答,由SO网友:Bainternet 整理而成
回答您的问题:
这些大量调用update\\u user\\u meta是否会导致性能下降?
对数据库的调用次数越高,其工作速度就越慢,因为每个查询都需要一些时间(虽然不多,但仍然需要)。
这两种解决方案中哪一种似乎更好?
最近,我完成了一个用户设置量相似的项目,最终的解决方案是将我不需要查询或搜索的所有数据存储为数组(因为使用数组在数据库中存储数据时,数据是序列化存储的),其余数据(需要查询的数据)存储为单行数据,这将一页上的查询从68个减少到了7个。