【问题标题】:Joomla 2.5 How many possible categoriesJoomla 2.5 有多少可能的类别
【发布时间】:2013-03-24 21:10:52
【问题描述】:

我用谷歌搜索,但只能找到最大数量的文章的答案。

问题:短版:

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
      ...

等等。最明显的是将房屋和地点作为类别。 Architect A, Architect B ...作为子类别,项目作为文章。一方面,这将保留使用 Joomlas 博客视图等的能力,而不使用第三方 CCK 扩展,但另一方面,这可能会导致 300 多个类别。

感谢您一直以来的出色意见,

托尼

【问题讨论】:

    标签: joomla categories max


    【解决方案1】:

    您正在查看 #__categories 表中的 2147483647 个可能的类别。

    在 Joomla 中! 2.5 对 Categories 表的定义你会发现:

    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 专栏 只有当它只包含正值时才能正常工作。插入一个 负数被认为是插入一个非常大的正数。 这样做是为了避免数字“换行”时出现精度问题 正面转负面,也确保您不会意外 获取包含 0AUTO_INCREMENT 列。

    在共享主机上,您将在达到#__categories 主键的此限制之前很久就会用完数据库空间 - 类别表中的其余记录指定的空间大约是主键使用的 1300 倍。 (大概

    因此,您更有可能让正常内容影响托管限制,而不仅仅是类别表。

    【讨论】:

      【解决方案2】:

      唯一的限制是理论上的,很大程度上取决于您的托管环境。只要知道添加的越多,加载类别数据所需的内存就越多,并且可能会使用户界面复杂化,具体取决于一次可见的数量。

      【讨论】:

        【解决方案3】:

        查看在我的测试站点进行的一些测量(J2.5.x,未使用 J3.x 进行测试,但应该相同):

        每个脚本执行的常见 PHP 内存限制为 40MB(服务器默认)

        你可以期待它有大约 800 个类别 从而得到一个内存耗尽的致命错误 (权限检查将占用 26MB 的空间,剩下的内存留给其他东西......)

        在创建类别树并检查权限的地方 例如Joomla文章表格

        注意: 如果您是超级管理员,则类别权限检查不会占用任何内存

        注意: 内存限制为 128MB,您最多可以拥有(大约)3500 个类别

        还有 5000+ 或 10000+ 个类别,您会开始遇到一些中小型性能问题,但这确实是太多类别

        【讨论】:

          猜你喜欢
          • 2023-03-16
          • 2012-06-30
          • 2014-03-11
          • 2013-06-18
          • 2013-10-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-10
          相关资源
          最近更新 更多