【问题标题】:MYSQl Optimize Table Of Blog Posts With CommentsMYSQl 优化带有评论的博客文章表
【发布时间】:2011-03-18 21:01:21
【问题描述】:

我正在制作一个 mysql 表,它将保存我的博客文章和他们的一些信息。我希望能够在博客文章中添加 cmets 并将它们保存在 mysql 中。我的问题是天气我应该创建一个名为 cmets 的表,并让那里的所有 cmets 都有博客文章 ID,所以我只会选择相应的 cmets,如下所示:

select from comments where id = blogpostid

或者我的另一个想法是将所有 cmets 放入一个数组中,并将它们保存在我的博客文章表中的一个 longtext 字段中,这样每一行(博客文章)都将包含它的 cmets。

我会接受任何其他想法,但对我来说速度是第一位的。

【问题讨论】:

    标签: mysql optimization comments blogs query-optimization


    【解决方案1】:

    拥有一个标准化的、独立的 cmets 表是正确的。

    使用适当的索引,它会正常工作。我怀疑是否会有那种流量可以证明对结构进行非规范化以提高速度是合理的。

    【讨论】:

    • 如果您将使用例如。实时 gps 数据,然后去规范化是有意义的,对于博客来说,没有必要这样做
    【解决方案2】:

    请阅读有关数据库规范化的信息,例如 (http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/)

    确实,非规范化(添加冗余数据或对其进行分组)可以提高数据库的性能,但它也会增加数据库的大小。
    当数据库充当博客后端时,数据完整性应该是您最关心的问题。

    除非你需要更复杂的东西(如多态关联等)

    【讨论】:

    • 快速运行代码比快速运行代码更容易(软件工程第二定律)。
    【解决方案3】:

    我们可以通过拥有两种类型的表来拥有一个完全规范化的表结构

    type1 表
    存储所有帖子 id ---(所有帖子的索引)

    type2 表
    type1 表中的行数 = type2 表中的行数 每个 type2 表都以帖子 ID 命名 类型 2 表由其各自帖子 ID 的 cmets 组成

    表的维护肯定会有问题

    【讨论】:

      【解决方案4】:

      它们是我们可以通过 xml 技术的用户解决此问题的另一种方式

      通过将每个帖子评论线程保存在索引的 xml 文件中

      由于 xml 促进了树形结构,它有利于部分评论和“评论”

      额外的好处 更好的管理和减少ou db查询的次数

      这个解决方案的问题 未针对搜索索引进行优化

      【讨论】:

        猜你喜欢
        • 2016-02-02
        • 1970-01-01
        • 2011-02-26
        • 2014-02-26
        • 2021-02-04
        • 2018-09-12
        • 2013-01-04
        • 2021-08-21
        • 2022-12-17
        相关资源
        最近更新 更多