【问题标题】:Suggestions for MySQL table design schemaMySQL表设计模式的建议
【发布时间】:2012-09-02 11:06:18
【问题描述】:

我从一个 media 表开始,用于存储一个包含 100 万张图像和 1000 部电影的目录树的基本信息(id、路径、文件名、mime、文件大小、md5 等)。我需要添加一些主要与电影相关的新列(标题、描述、运行时),并且需要查询标题匹配。有 1+ 百万行没有标题,我认为我不应该将附加列添加到“媒体”,因为它会给我 1+ 百万空/空行,它不适用。我有一个 media_meta (id, media_id, meta_key, meta_value) 表,它存储杂项信息的序列化值,标题是其中之一,但现在我需要能够仅索引“标题”搜索。我是否应该添加另一个表 media_titles,其中只有 media_id,标题带有标题索引,以进行如下查询:

SELECT * FROM media_titles WHERE title LIKE '%title%';

我意识到上面的查询还不是最优的,但它仍然是我需要做的事情,即。在标题中搜索子字符串。

表格摘要:

media (id, path, filename, filesize, mime, md5, etc...)
media_meta (id, media_id, meta_key, meta_value)
media_titles (media_id, title)

【问题讨论】:

    标签: mysql


    【解决方案1】:

    如果您在标题搜索中使用通配符,就像您在示例查询中所做的那样,那么表格设计实际上是无关紧要的。没有某种全文搜索功能,我不太熟悉。

    据我所知,当您以通配符开头时,MySQL(或任何 RDBMS)无法使用列上的索引。

    【讨论】:

    猜你喜欢
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多