【发布时间】:2012-12-18 23:03:04
【问题描述】:
我一直听说,对 SQL 表进行“正确”索引是提高性能的关键。我从未见过这样的真实示例,我想使用SQLFiddle 制作一个示例,但不确定使用 SQL 语法。
假设我有 3 张桌子:1) Users 2) Comments 3) Items。
我们还假设任何用户都可以评论每个项目。因此,要获得 item=3 的 cmets,SQL SELECT 的样子如下:
SELECT * from comments join users on comments.commenter_id=users.user_id
WHERE comments.item_id=3
我听说一般来说,如果行数变大,即数千/数百万,应该在WHERE 和JOINed 列上放置索引。所以在这种情况下,comments.item_id、comments.commenter_id 和 users.user_id。
我想创建一个SQLFiddle 来比较将这些表编入索引与每个表不使用成千上万行。有人可以帮忙生成这个 SQLFiddle 吗?
【问题讨论】:
-
好吧,我认为 SQL fiddle 不是最好的工具。获取一个 MySQL 实例,或者一个带有 MySQL 的完整虚拟设备,然后在上面进行操作。顺便说一句,生成测试数据并不是一件容易的事。最好的办法是从某个地方获取一个真实数据库的副本并使用它 - 但如果您手头还没有一个,这并不是最容易的事情......
-
SQL Fiddle 会限制你大约 8k 的数据,我想。现在,您几乎可以获得每个 dbms 的免费版本。安装您喜欢的,并使用您喜欢的脚本语言生成数据。 (我喜欢一年学几次新语言,这样的事情是一个很好的借口。)
-
@ppeterka 感谢您的建议
-
@Catcall 感谢您的建议
标签: mysql sql join indexing sqlfiddle