freeone
V2EX  ›  WordPress

问个 Wordpress 数据库的问题,为什么 WP 把 post 和附件放在同一数据表里?

  •  
  •   freeone · Sep 20, 2017 · 3517 views
    This topic created in 3191 days ago, the information mentioned may be changed or developed.
    因为对 WP 稍微熟点,加上有这么多的主题插件可选,所以打算用 WP 建个图库网站。现在已有 12W 多的图片,1W 多的文章,这样子 wp_posts 这个表纪录就比较可观了,考虑到后续的增加,感觉以后的数据查询可能会比较累。我有点纳闷的是:为什么 WP 会采用这种数据结构,看了下其它的程序,一般文章和图片附件都是分开保存的,难道放在同一表里查询会更有效率?

    昨天发现有个 Photo Gallery 插件,可以实现图片另外保存(它自己有另外的上传方式),但它管理图片非常不便,没有 WP 内置媒体库来得方便。不知还有什么插件可以实现文章和图片分开保存的?
    15 replies    2018-02-14 00:11:37 +08:00
    malagebidi
        1
    malagebidi  
       Sep 20, 2017 via Android
    要不放在站外吧,我觉得除了缩略图功能没啥可留恋的,阿里云 oss 可替代。
    freeone
        2
    freeone  
    OP
       Sep 20, 2017
    @malagebidi 放在站外,管理起来还是不太方便。如果不考虑空间问题,个人还是倾向站内。
    vicki
        3
    vicki  
       Sep 20, 2017
    自己写一个插件,把图片的数据库表分开就可以了。
    vicki
        4
    vicki  
       Sep 20, 2017
    可能上传的图片方式会不一样。
    loveyu
        5
    loveyu  
       Sep 20, 2017
    因为图片也是可以单独评论或者作为一个页面的,如果我也实现一个类似的功能我可能也会这样干。
    freeone
        6
    freeone  
    OP
       Sep 20, 2017
    @loveyu 这个估计是原因,但是如果分开存的话,也可以处理,只要在评论表里加个 post_type 条目,应该也可以区分检索了。WP 现在这么处理,到底是为了简化还是更有效率呢?
    freeone
        7
    freeone  
    OP
       Sep 20, 2017
    @vicki 自已写插件的话,其实涉及的东西还是比较多的,上传、删除、搜索、管理等等,好多函数都要重写。
    GG668v26Fd55CP5W
        8
    GG668v26Fd55CP5W  
       Sep 20, 2017 via iPhone
    因为文章跟附件甚至自定义的发布类型有很多共同属性,可以使用统一的函数处理,额外的属性又可以通过 post_meta 关联。这样扩展性很好,但实际上数据量一大性能很差,大量的慢查询都是来自这种关联查询。哦,还有 like 全文搜索。我也很苦恼
    litanid
        9
    litanid  
       Sep 20, 2017
    我想不起来,做图片站用 wp 有什么好!
    lianyue
        10
    lianyue  
       Sep 21, 2017
    Wordpress 结构 几乎用了最少的表 做了最多的功能
    allenhu
        11
    allenhu  
       Sep 21, 2017 via Android
    12w 就可观?怎么的也得 1200w 吧😄
    freeone
        12
    freeone  
    OP
       Sep 21, 2017
    @falcon05 官方的忠告是“千万不要把 meta 查询用在 WP_Query 里,而要用 Taxonomy 查询代替”。https://vip.wordpress.com/documentation/querying-on-meta_value/,不知道你是不是有这种情况? WP 现在应用这么普遍,它的 post_type, post_meta 及 hook 使得好象可以做任何类型的网站,但是目前的数据库结构使得数据量一大就不堪重负,想用 post_type + comment 做个简单的论坛吧,又担心以后转不动,不知道官方以后会不会改数据库结构,做个优秀的 CMS 系统。
    freeone
        13
    freeone  
    OP
       Sep 21, 2017
    @litanid 如果单纯做图片站,估计我也不会用 WP 了。一方面想做个“麻雀虽小”的集文章、图集、论坛功能的小站,另一方面想用 WP 练练级,打算只用一个 WP 程序达到上述功能。
    GG668v26Fd55CP5W
        14
    GG668v26Fd55CP5W  
       Sep 21, 2017 via iPhone
    @freeone 看了一下,确实有这个问题,很多插件都是使用 post_meta 并且放在 wp_query 查询,而不是自定义分类法,可能因为那样简单吧。比如统计文章阅读量的几个插件。还有一些数据比如图片的原始信息也是放在 post_meta。
    yytsjq
        15
    yytsjq  
       Feb 14, 2018
    @freeone

    说的是不要在 WP_Query 中查询 meta_value 吧?

    WordPress postmeta table has an index on meta_key, but not meta_value.

    https://vip.wordpress.com/documentation/querying-on-meta_value/
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3186 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 11:25 · PVG 19:25 · LAX 04:25 · JFK 07:25
    ♥ Do have faith in what you're doing.