17,381
社区成员
发帖
与我相关
我的任务
分享
忘了结贴了[/quote]
啥原因?没看到啊[/quote]
问了一下开发人员
1、程序内没做username精确查询,like改成=,程序也不起作用
2、打印出来的username两边都带有%,前%会导致索引失效,这样的话,无论怎么查,索引都是失效的
现在就总结出这样的问题[/quote]
哦,原来说的是这,之前倒是看到了……[/quote]
开发现在也没时间解决,就暂且放在那了[/quote]
你可以参考下我36楼的方法。
或者你们可以把查询拆成两部分,一部分就是所有员工username和他对应的主键保存到redis这种缓存中,即使百万量级下,全部扫描一遍,也应该是秒出的,通过查到的主键再回到数据库去做关联什么的,这样也行。
忘了结贴了[/quote]
忘了结贴了[/quote]
啥原因?没看到啊[/quote]
问了一下开发人员
1、程序内没做username精确查询,like改成=,程序也不起作用
2、打印出来的username两边都带有%,前%会导致索引失效,这样的话,无论怎么查,索引都是失效的
现在就总结出这样的问题[/quote]
哦,原来说的是这,之前倒是看到了……
忘了结贴了[/quote]
忘了结贴了[/quote]
啥原因?没看到啊
忘了结贴了
[/quote]
忘了结贴了[/quote]
[/quote]
[/quote]
没有 [/quote]那就加个索引就好了啊
select *
from (select tmp.*,rownum row_id
from (select t.*
from (select * from sys_user where username like 'username' and userMgrType <> 10 and deleted = 2 ) t
join sys_department deptObj on t.dept = deptObj.id
where (deptObj.path like '部门path')
order by t.ordernum asc) tmp
where rownum <= 10 )
where row_id > 0;
[/quote]
select *
from (select tmp.*,rownum row_id
from (select t.*
from (select * from sys_user where t.username like 'username' and t.userMgrType <> 10 and t.deleted = 2 ) t
join sys_department deptObj on t.dept = deptObj.id
where (deptObj.path like '部门path')
order by t.ordernum asc) tmp
where rownum <= 10 )
where row_id > 0;
