【发布时间】:2011-10-10 17:12:20
【问题描述】:
首先,关于网站和数据库结构的一些细节-
通过我的网站,您可以学习英语单词,并且您可以在每个单词上插入一个句子、一个关联、一个图像,此外 - 每个单词都有一个类别、子类别、组...
我的数据库包含大约 20 个表。任何注册到我的网站的用户都会“添加”到用户表中,比如 4000 行——我网站上的字数。我在用户过滤单词时遇到了一个严重的问题(类似“搜索”的单词,但根据 char/s & category/s & group/s 等。我的 sql 查询中有 9 个 JOIN,它需要大约 1 分钟显示结果..
JOIN 的目标 - 在表 users 内(每个用户有 4000 行/每行 = 单词)有这种样式的连接:
$this->db->join('users', 'sentences.id = users.sentence_id' ,'left');
与关联、组、图像、单词之间的绑定等相同。 users 表包括句子、关联、组的 id.. 并且与 JOIN 有一个连接。
我不知道该怎么办.. 这需要太多时间。也许问题是数据库的结构?多个连接?也许使用索引?但是如何以及在哪里?因为有时需要检索所有单词,所以索引无济于事。
我正在使用 MySQL。
【问题讨论】:
-
你发布架构怎么样?还要描述这个过程,每个表的内容和时间。为什么单个用户会在 users 表中添加 4000 行——这听起来很奇怪?
标签: mysql sql database database-design