oracle 索引 是走where条后面的 字段 还是select 后面的字段?
新手问题,刚学索引。
不知道索引的机制是如何的。
创建索引是根据where后面常用的字段,还是基于SELECT XX后面的出现的字段
还有另外一个问题现在我测试库有几百万的数据单单查询一个表都要几秒我想优化一下
SELECT * FROM (SELECT E.EMPNO, E. ENAME, E.JOB, E.MGR, E. HIREDATE, E.SAL, E.COMM, E. DEPTNO, E.OPT_ID, O.FULL_NAME AS OPR_NAME , O.PRSNL_CODE AS OPR_CODE, E.SEX, E.STATUS, E.LEAVEDDATE, E. LEAVINGREASON, E.CREATETIME, E. UPDATETIME FROM EMP E LEFT OUTER JOIN SYS_PRSNL O ON (E.OPT_ID = O.PRSNL_ID ) WHERE ((HIREDATE >= TO_DATE('19890118', 'YYYYMMDD')) AND (HIREDATE <= TO_DATE('20190118', 'YYYYMMDD'))) ORDER BY EMPNO) WHERE ROWNUM <= 1000
第一个SELECT * FROM 是框架里写死的,子查询才是我自己写的。
我想到的是用索引解决。所以就引出了上面的问题。还有其他办法吗?
我想不可能查一个表,里面几百万数据就需要查2-3秒的数据。这样太慢了吧。
请教各路大神指教一下!! 谢谢