几个问题的简要回答.据我所知,你对使用索引感到困惑
如果比率,请考虑在列上创建索引 –
考虑1 –
(Number of UNIQUE Entries of the Columns)/(Number of Total Entries in the Column) ~= 1
那是特定列中DISTINCT行的数量很高.
创建额外的索引将始终为MySQL服务器创建开销,因此您不能创建每个列的索引.单个表可以拥有的索引数量也有限制=每个表64个
现在,如果所有搜索查询中都存在tenant_id,则应将其视为索引或复合键,
提供 –
考虑2 – UPDATE的数量少于tenant_id上的SELECT数量
注意事项1 – 即使您确实将任何列声明为索引,MySQL优化器仍可能不会将其视为查询执行的最佳计划.因此,请始终使用EXPLAIN来了解最新情况. http://www.mysqlperformanceblog.com/2009/09/12/3-ways-mysql-uses-indexes/
注意事项2 –
您可能希望缓存搜索查询,因此请记住不要在SELECT查询中使用不可预测的语句,例如NOW()