SELECT A.a1,
B.b1
FROM A,
B
WHERE A.a1 = B.a1; a1为表A的主键,由于A表记录太多,全部缓存完所查询出的记录需要很长时间,显示到前后给用户造成查询太慢的感觉。
我该如何处理?这查询还可如何进一步优化?另外,查询结果能不能在还没缓存完的情况下先在前台部分显示出来?
B.b1
FROM A,
B
WHERE A.a1 = B.a1; a1为表A的主键,由于A表记录太多,全部缓存完所查询出的记录需要很长时间,显示到前后给用户造成查询太慢的感觉。
我该如何处理?这查询还可如何进一步优化?另外,查询结果能不能在还没缓存完的情况下先在前台部分显示出来?
在A表的主键a1上建索引(建议使用组合索引); 绑定变量(软解析),即查询条件不写死:where column=:1,不要写成where column='1'; 其它那些什么模糊、null、in、<> 、or使用不当(左右两边一字段没索引,
另一字段有索引)等引起全表扫描的sql就省省; 最主要的是先将A表适合条件的记录查出来,然后再left join B表
那只能用分页查询了B表的主键是a1 吗?
A、B表到底有多少数据啊,要那么久是什么程序调用的检索,还是直接在SQLPLUS里执行的?