暂无图片
mysql谓词下推问题
我来答
分享
黄伟波
2020-05-18
mysql谓词下推问题
暂无图片 5M

create view v1 as select distinct id from t where name=‘xxx’;

–不走索引
select * from v1 where id=1;

–走索引
select distinct id from id where name=‘xxx’ and id=1;

问题:一些比较复杂的视图这样去查是不走索引,直接全表扫描,请教下这类问题应如何解决?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
Cui Hulong
  1. show create table t;看看索引是设置在哪里的。
  2. explain 命令可以看到是否走索引
  3. 返回的数据 操作28%以上,就会走全表扫描。这个具体要看。
暂无图片 评论
暂无图片 有用 0
黄伟波

没,放在视图里面就不会走了,mysql不能在视图上建索引,如果是Oracle就会走索引

暂无图片 评论
暂无图片 有用 0
test

如果不要求实时性,可以写存储过程,创建临时表,提前准备好数据

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏