Wp_Options与新表的效率

时间:2011-07-30 作者:Jeff Sebring

我正在构建一个WordPress主题框架,随着开发的进展,它可能会有很多选项。

我发现了一个相关的问题:When is it appropriate to create a new table in the WordPress database?, 这表明新表的效率会更高,但我想知道更多。

有道理的是,如果对1000个条目使用新表更快,那么对数十个或数百个条目也必须更快。此外,wp\\U选项表可能变得非常混乱。

这两个选项在查询执行时间、内存使用和其他因素方面有什么区别?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

有道理的是,如果对1000个条目使用新表更快,那么对数十个或数百个条目也必须更快。

性能不是关于纯粹的行数,而是数据的实际数量及其结构计数。通常,您只使用theme mod API. 您的主题数据位于可预测的位置,可以通过插件轻松导出或更改。theme mod API将所有数据存储在一个选项中,因此杂乱的选项表不会成为您的问题。

但是,如果在主题数据中放置非常深的数组或对象,(反)序列化可能会减慢这些选项的读写速度。在这种情况下,我宁愿处理数据结构,也不愿创建新表。我会使用一个好的缓存插件来减少数据库查询。

If 您可以选择单独的表—为子主题和多站点安装找到一个好的解决方案。想象一个有100个博客的小网络。您是否为每个博客创建新表?还是所有博客共享一个表?

只有当WordPress的表模式无法映射我的数据结构时,我才会使用单独的表。在一个主题中,情况可能并非如此。

SO网友:scribu

如果您的主题框架有太多选项,以至于您考虑将它们放在一个单独的表中,那么您就做错了™.

这两个选项在查询执行时间、内存使用和其他因素方面有什么区别?

这取决于构建表的方式(列数据类型、索引)、表的行数以及执行的查询类型。

wp\\u options表(以及相关的API)针对简单的键值查找进行了优化,这正是存储主题选项所需的。

结束

相关推荐

我应该在主题中的哪里更新_Options?

我正在设计一个主题,其中主页(即。is_home()) 应该只显示最新的博客文章。我想做点什么$wp_query->update_option(\'posts_per_page\', 1) 每次我在主页上。所有其他显示帖子(如归档)的页面都应该遵循用户定义的选项。每次都这么做似乎有点不必要,因为选项应该只设置一次,对吗?是否可以在循环中忽略posts_per_page 和力have_posts() 只设一个职位?一般来说,这种“一次性设置”的东西应该去哪里?我真的不认为它应该是一个插件,因为它是特定