我正在尝试找到一种优化查询性能的有效方法。你能以不同的方式向我推荐吗?
目前我正在运行像
这样的查询<table class="table table-striped table-condensed">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td class="id"><%= user.id %></td>
<td class="name"><%= link_to user.name, user %></td>
<td class="email"><%= user.base_name %></td>
<td class="username"><%= user.username %></td>
</tr>
<% end %>
</tbody>
</table>
现在这很慢。 我想改进以下部分查询。
SELECT a.col1, b.colX
FROM TableA a
INNER JOIN TableB b
ON a.a1Key=b.b1Key
WHERE
a.col2 in (select test from TableC)
OR a.col3 in (select test from TableC)
OR a.col4 in (select test from TableC)
OR a.col5 in (select test from TableC)
OR a.col6 in (select test from TableC)
OR a.col7 in (select test from TableC)
OR a.col8 in (select test from TableC)
答案 0 :(得分:1)
包含另一个JOIN
与TableC
类似的
SELECT a.col1, b.colX
FROM TableA a
INNER JOIN TableB b
ON a.a1Key=b.b1Key
JOIN TableC c
ON c.test IN (a.col2, a.col3, a.col4, a.col5, a.col6, a.col7, a.col8);