我想在WP中设计一个成员登录站点,但我怀疑WordPress是否能够在同一个数据库中处理40000多个用户?
我对此不太确定,所以我在这里工作。因此,请帮助我,如果有人确切地知道这一点,以继续我的项目与WP。
发布于 2013-04-04 04:57:54
根据WP数据库结构,wp_users中的ID是未签名的Bigint(20),所以您可以“理论上”增加18446744073709551615用户。http://dev.mysql.com/doc/refman/4.1/en/integer-types.html
发布于 2015-02-21 16:03:14
回答这个问题有点晚了,但既然要进行相关的搜索,这对某些人来说是有用的:
WordPress在其部分数据库实现中使用EAV数据库模式。这对数据和用户都有影响。(它们放在单独的桌子上)
为了从数据的角度来解释它:
除了wp_posts中可直接访问的与帖子相关的详细信息之外,每个帖子的大量元信息都被张贴到wp_postmeta表中。与post (或自定义post类型)相关的任何数据。
问题是,如果您有大量的帖子或页面(或自定义的post/数据),那么搜索在元中找到的任何属性就会变得非常缓慢。首先搜索meta表中的所有条目以确定所需的条件,然后从表中获取相关的帖子。关键是,您需要分别搜索每个标准。因此,在搜索标记时,您将得到值为“元1”的帖子,然后搜索第二个条件,例如,定制条件,并在定制条件中获得带有customcriteriavalue1的post in,然后取这些条目的交集,然后从post表中获取与该交叉口对应的post详细信息。
举个例子--将30,000种产品放入WooCommerce中,您最终将在wp_postmeta中得到大约1,800,000行,如下所示:
因此,这不仅会使搜索效率非常低(特别是当您在wp_postmeta上为多个条件进行自联接时),而且甚至从1800万行中查询单个行也会导致性能下降。
EAV模式缺陷
因此,有了大量的帖子,WordPress db的实现使得复杂的搜索变得非常缓慢。
如果您使用缓存插件,那么运行一个包含数千个帖子的WordPress站点是非常可行的。你可以走得更远。但搜索将是个问题。
.
用户也是如此-- wp_usermeta也使用相同的EAV格式。因此,如果您有很多用户,并且有许多插件可以在wp_usermeta中存储各种用户数据,那么您将受到相同的性能影响。
更别提这么多用户,你可能已经有了大量的帖子--除非你的应用程序大多与用户有关(客户关系管理等等),你选择用wp_usermeta而不是wp_postmeta来存储你的用户数据。(虽然不太可能)。
.
有一些插件试图解决这一问题,如Meta加速器。
https://wordpress.org/plugins/meta-accelerator/
这个插件为您选择的任何给定的post类型获取任何数据,并将它们放置在平面表中。这大大加快了搜索速度,也加快了查询任何奇异值的速度。
但是这个插件还处于起步阶段。
或者,您可以在服务器上安装ElasticSearch,并使用ElasticPress插件或将其集成到WordPress中的其他插件来加速此类搜索。
发布于 2013-04-04 03:29:20
我认为你可以运行更多的用户。唯一能限制你的是你的服务器。您必须适当地缩放它,特别是MySQL服务器。例如,wordpress.com
运行的用户甚至超过40000,但他们使用特别强大的系统来实现稳定性、大量负载平衡器等等。
https://wordpress.stackexchange.com/questions/94528
复制相似问题