我约有。在表格tb_post
中的200K行,并且每5分钟它具有约。 10个新插入。如何提高频繁插入频率下MySQL查询的性能?
我使用下面的查询,以获取行 -
SELECT tb_post.ID, tb_post.USER_ID, tb_post.TEXT, tb_post.RATING, tb_post.CREATED_AT,
tb_user.ID, tb_user.NAME
FROM tb_post, tb_user
WHERE tb_post.USER_ID=tb_user.ID
ORDER BY tb_post.RATING DESC
LIMIT 30
它时超过10秒获取的排序方式中的所有行。
以下是EXPLAIN查询的报告:
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE tb_user ALL PRIMARY NULL NULL NULL 20950 Using temporary; Using filesort 1 SIMPLE tb_post ref tb_post_FI_1 tb_post_FI_1 4 tb_user.id 4
投入少:
tb_post.RATING
是浮子式- 上有
tb_post.USER_ID
任何人都可以给我建议指数我应该如何优化这一点的几点提示查询并提高其读取性能?
PS:我是数据库扩展问题的新手。因此,任何类型的建议都将对这个查询特别有用。
为什么你不想要索引? – 2009-05-28 08:24:09
对不起,我感到困惑。我纠正了我的问题。我确实想索引,并且USER_ID已经被编入索引,但它仍然没有帮助。问题是 - 我是否也需要索引其他栏目,如果是,哪些栏目? – Aditya 2009-05-28 08:30:15
也许你应该考虑使用JOIN操作,并小心你加入你的表的顺序 - 首先变小。但它取决于你使用的数据库..更多信息http://stackoverflow.com/questions/173726/when-and-why-are-database-joins-expensive/173744#173744 – 2009-05-28 08:37:57