我目前正在一台服务器上构建一个网站。数据库开始增长,几乎达到半个tera。我想知道如何加快SQL查询的速度,尤其是在连接请求时。。。
事实上,当我做时,我看到了这一点
SELECT * FROM table LEFT JOIN pofile on profile.id=table.id WHERE uid=useruid
表和概要文件是大表(超过500万个输入)。但我想知道连接是如何执行的,它是如何优化的,因为在我的情况下,如果我第一次选择profile为uid=useruid,我只有一百行,而其他条件会将表减少到一千行,所以连接应该很快,但似乎不是这样,因为连接请求大约需要一秒钟,其中子句id、uid是表中的索引。
有没有优化SQL联接的方法?
当然。整个职业都是靠做这件事生存的。
你应该阅读有关解释计划和索引的内容。有时,你可以达到1000%或更高的速度提高(当然,这取决于数据库的当前状态)。
您可以使用索引视图。这可以提高您的性能,因为有一个平衡的联接表树。
它在很大程度上依赖于数据库引擎。如果您的查询效果更好:
WITH t AS (
SELECT
*
FROM
table
WHERE uid=useruid
)
SELECT
*
FROM
t
LEFT JOIN
profile
ON
profile.id = t.id