我用谷歌搜索,但只能找到最大数量的文章的答案。
问题:简短版本:
Joomla 2.5可以在共享主机上处理多少个可能的类别(带子类别)。我不得不期待哪些问题?
问题:长版本:
我正在为建筑师建立一个网站。内容结构如下所示
HOUSES
Architect A
Project 1
Project 2
...
Architect B
Project 1
Project 2
...
Places
Architect C
Project 1
Project 2
...
Architect D
Project 1
Project 2
...
等等。最明显的是将HOUSES和PLACES作为类别。建筑师A,建筑师B ......作为子类别,项目作为文章。这将一方面保持使用Joomlas Blog View等的能力,而不是使用第三方CCK扩展,但另一方面,这可能会导致300多个类别。
感谢您一直很好的投入,
Tony
答案 0 :(得分:2)
唯一的限制是理论上的,在很大程度上取决于您的托管环境。只要知道你添加的越多,在使用它时加载类别数据所需的内存就越多,并且可能会使用户界面复杂化,具体取决于一次可见多少。
答案 1 :(得分:2)
您正在查看#__categories
表格中可能的2147483647个类别。
在Joomla! 2.5你会发现类别表的定义:
CREATE TABLE `#__categories` (
`id` int(11) NOT NULL auto_increment,
`asset_id`
<snip ... >
`language` char(7) NOT NULL,
PRIMARY KEY (`id`),
KEY `cat_idx` (`extension`,`published`,`access`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_path` (`path`),
KEY `idx_left_right` (`lft`,`rgt`),
KEY `idx_alias` (`alias`),
INDEX `idx_language` (`language`)
) DEFAULT CHARSET=utf8;
正如您所看到的,主键被定义为int
,因此最大value on MySQL of an signed INT
(2147483647)和默认起点1会产生超过21亿个类别。见*Note about AUTO_INCREMENT on MySQL
注意强>
每个表只能有一个
AUTO_INCREMENT
列,它必须是 已建立索引,并且不能具有DEFAULT
值。一个AUTO_INCREMENT
列 仅当它只包含正值时才能正常工作。插入一个 负数被视为插入一个非常大的正数。 这样做是为了避免数字“包裹”时的精度问题 积极到消极,也确保你不小心 获取包含AUTO_INCREMENT
的<{1}}列。
在共享主机上,在达到0
主键的此限制之前很久就会耗尽数据库空间 - 类别表中的其余记录指定的空间大约是主键使用的空间的1300倍。 (大致)
因此,您更有可能使正常内容影响托管限制,而不仅仅是类别表。
答案 2 :(得分:0)
查看在我的测试站点中完成的一些测量(J2.5.x,没有使用J3.x进行测试,但它应该是相同的):
每个脚本执行的常见PHP内存限制为40MB(服务器默认值)
你可以期待大约800个类别 从而得到一个内存耗尽的致命错误 (权限检查将占用26MB,剩余内存用于其他内容......)
位于创建类别树并检查权限的位置 例如Joomla文章表格
注意: 如果你是超级管理员,则类别权限检查不会占用任何内存
注意: 内存限制为128MB,你可以拥有最多(约)3500个类别
对于5000+或10000+类别,您开始遇到一些小型或中型性能问题,但这实际上是太多类别