假设我已经编码。
<%= f.fields_for :questions do |question_form| %>
<%= question_form.text_field :question_text %>
<%= question_form.select :question_type, [ 'TEXT', 'OPTIONS', 'UPLOAD' ], :prompt => 'Select One', :id => "my_id", :onchange => "myFunction()" %>
<%= question_form.link_to_remove "Remove this Question" %>
<%= question_form.fields_for :options do |option_form| %>
<%= option_form.text_field :option_text %>
<%= option_form.link_to_remove "Remove this option" %>
<% end %>
<p id = "test" hidden><%= question_form.link_to_add "Add a option", :options %></p>
<script>
function myFunction(){
var x = document.getElementById("my_id").value;
if (x == "OPTIONS") {
document.getElementById("test").hidden = false;
}
}
</script>
<% end %>
将在
中使用use_indexcreate index use_index on tbl_nm (col2 ,col3 ,col4 ,col5);
此外,我们应该通过在左侧排列最唯一的索引,在右侧排列最常见的索引来创建索引。对吧?
如果我想订购查询结果,我也应该将该列添加到索引中吗?
答案 0 :(得分:0)
索引应至少是常见查询中首先使用的引用,然后是按范围搜索列。
因此,在您的示例中,col2
和col3
将使用此索引。但是由于没有col4,因此搜索col5
的速度将不会很快。也就是说,将扫描所有col4
和col2
匹配“某物”的col3
项,以找到匹配的col5
。
如果您搜索的是col4
而不是col5
,那么它将是对所需项目的二进制搜索。
使用EXPLAIN {query}
显示索引的使用情况。
实际上没有考虑按索引的顺序考虑唯一性或唯一性。