建表语句:

CREATE TABLE TB_VIEW_INDEX
(
   IDX_ID INT NULL ,
   IDX_NMAE VARCHAR2(5)
);
CREATE TABLE TB_VIEW_INDEX1
(
   IDX_ID INT NULL ,
   IDX_NMAE VARCHAR2(5)
);
CREATE INDEX IDX_ID ON TB_VIEW_INDEX(IDX_ID);
insert into TB_VIEW_INDEX values (1,'a');
commit ;
CREATE VIEW VW_VIEW_INDEX  AS  SELECT * FROM TB_VIEW_INDEX;
DROP VIEW VW_VIEW_INDEX;
CREATE VIEW VW_VIEW_INDEX  AS  SELECT * FROM TB_VIEW_INDEX UNION ALL 
 SELECT * FROM TB_VIEW_INDEX1;

使用单表建视图

ORACLE数据库执行计划mysql和oracle视图是否走索引说明

MYSQL数据库执行计划

mysql和oracle视图是否走索引说明

使用union all 建视图

ORACLE执行计划

mysql和oracle视图是否走索引说明

MYSQL执行计划

mysql和oracle视图是否走索引说明

经过测试发现,mysql和oracle如果使用单表创建视图时,如果表中有索引,视图会按照表中索引;如果建视图中包含union all 时,oracle视图还是走索引,但是mysql就是全表扫描了。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-12
  • 2021-10-26
  • 2021-11-29
  • 2021-05-17
  • 2021-05-22
猜你喜欢
  • 2022-12-23
  • 2021-09-21
  • 2021-12-07
  • 2021-08-02
  • 2021-09-08
  • 2022-12-23
  • 2021-08-21
相关资源
相似解决方案