简单查询,效率极低,求讨论。
现有两张表
TableA 结构如下:
DeptID INT,
DeptName VARCHAR;
DeptID 有索引
TableB 结构如下:
UserID int,
DeptID int,
UserName varchar,
UserTel varchar,
UserAddress varchar
DeptID 有索引
现查询语句是:
select top 25 a.deptname from TableA a INNER JOIN TableB b ON a.DeptID=b.DeptID
WHERE (a.DeptName like '%小%' or b.UserName like '%小%' or b.UserTel like '%小%' or b.UserAddress like '%小%' )
随着数据量增大,查询数据越来越慢,现在TableA 有18万数据,TableB有28万数据,类似的库有100多个,放在一个机器上,几百个用户并发访问,每分钟有几百次请求,CPU常常100%。
请大牛帮想想优化办法。