求大大解答一个性能问题

cb1156 2015-04-21 01:50:57
现在被领导纠结一个问题
在数据量一样的情况下
比如一个表有
type字段 有 1 和 2

那么查询时
用 type=1 和 type!= 2
哪个性能比较好呢?
type有索引
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
苜蓿gt 2015-04-21
  • 打赏
  • 举报
回复
type=1好,最好不要用!=
Lyman_ 2015-04-21
  • 打赏
  • 举报
回复
引用 2 楼 cb1156 的回复:
在假设只有2个值 且数据量一样的情况下。 现在有人跟我说 = 可以用索引 !=不能用 !=要扫表 之类。 不知道正不正确
这是对的,但是MySQL是否会选择使用一个索引,和能不能使用一个索引,还是有区别的,如果索引的选择性较低,优化器会认为顺序扫描的成本比索引查找的成本要低,这时候就会放弃索引而是用扫描的方式
ACMAIN_CHM 2015-04-21
  • 打赏
  • 举报
回复
引用 2 楼 cb1156 的回复:
在假设只有2个值 且数据量一样的情况下。 现在有人跟我说 = 可以用索引 !=不能用 !=要扫表 之类。 不知道正不正确
建议自己亲自做试验。 用 explain select ... 查看MYSQL的执行计划。
zhu19774279 2015-04-21
  • 打赏
  • 举报
回复
引用 2 楼 cb1156 的回复:
在假设只有2个值 且数据量一样的情况下。 现在有人跟我说 = 可以用索引 !=不能用 !=要扫表 之类。 不知道正不正确
如果字段值的重复率很高,索引没有意义 写个表弄上百万条数据试试吧
cb1156 2015-04-21
  • 打赏
  • 举报
回复
在假设只有2个值 且数据量一样的情况下。 现在有人跟我说 = 可以用索引 !=不能用 !=要扫表 之类。 不知道正不正确
ACMAIN_CHM 2015-04-21
  • 打赏
  • 举报
回复
引用
type有索引
TYPE中会有多少种不同的值?如何分布?表中一共会有多少条记录? 如果表中的记录总数是 0,即没有记录,则 用 type=1 和 type!= 2 性能一样。 如果表中的记录总数是100,000条记录。而type=1 50,000条, type=2 50,000条,则 用 type=1 和 type!= 2 性能一样。 如果表中的记录总数是100,000条记录。而type=1 10,000条, type=2 10,000条,type=310,000条. type=4 10,000条,type=5 10,000条则 用 type=1 显然比 type!= 2 性能好。 。。。。 很多假设,这种问题没办法直接回答。必须参照具体情况才能分析。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧