两个SQL select之间是否有显着的好处?
editable=True
当然,cod_clie是一个INDEX字段!
答案 0 :(得分:0)
通常不会,因为mysql应该使用索引。要100%确定只需将解释附加到您的查询并比较输出。
EXPLAIN SELECT * FROM table USE INDEX (cod_clie) WHERE cod_clie = 'example' AND pwd_clie = 'example' LIMIT 1;
EXPLAIN SELECT * FROM table WHERE cod_clie = 'example' AND pwd_clie = 'example' LIMIT 1;
答案 1 :(得分:0)
默认查询分析器查找最佳索引以提高查询性能。但是由于许多手动索引或大量修改的表(例如INSERT或DELETE),随着时间的推移,密钥分布(Cardinality)与真实状态不同。
如果选择错误计划的优化程序可能会导致严重的性能问题。这意味着您的服务器可能会在最意外的时间遇到性能问题。
幸运的是,我们可以强制优化器选择具有'USE INDEX'提示的特定计划(索引)。
答案 2 :(得分:-1)
索引用于加速SQL搜索。 https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html
如果您没有任何索引,当您查找特定值(WHERE cod_clie =“example”)时,SQL将遍历整个表。
如果您拥有包含大量数据的大型数据库,您将会发现性能时间差异很大。
答案 3 :(得分:-1)
SQL索引通过以特定的排序顺序排列索引字段的值来增强SQL选择查询的性能,从而最小化要扫描的表中的行数,直到找到包含该列中的过滤值的匹配行为止。
通常索引应用于SQL select查询中用作过滤器的字段。