mysql 千万级数据 优化查询速度 20

我的数据库只有一个表有uiduserpassemail4个字段我现在的查询语句是SELECT*FROMdatabaseWHEREemailLIKE"%abc%"orpas... 我的数据库只有一个表 有uid user pass email 4个字段 我现在的查询语句是

SELECT * FROM database WHERE email LIKE "%abc%" or pass like "%abc%" or user like "%abc%";

这种模糊查询 发现查询很慢 请问怎么优化 可以提高查询速度 我是用nacicat的

分表?建索引? 具体怎么做?能给个详细教程吗?
展开
 我来答
ykzhen
2012-12-12 · TA获得超过5298个赞
知道大有可为答主
回答量:1303
采纳率:0%
帮助的人:1162万
展开全部
SELECT * FROM database WHERE email LIKE "%abc%" or pass like "%abc%" or user like "%abc%";

你的这条sql有索引也是等于没有的,因为你用了like '%xxx%' 如果like 的条件以%开始,数据库不会用索引。
分表是可以,但是需要分很多。你要一个表分几十个表才能优化到合理的速度。

但是从你表的数据量来说,你应该不需要用得全表扫面,应该是根据用户来查找。所以建议你加多一个userid =? 的来找,然后用userid作为你的索引。
壹寰(深圳)科技文化有限公司
2021-03-27 广告
不同公司提供的方案也不一样。如果想了解更多详细信息,可以咨询下壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库解密恢复、企... 点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
yaosniper
推荐于2018-05-06 · TA获得超过116个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:74.2万
展开全部
分表 建索引都解决不了的。 我做个一个700万级数据的搜索。是用sphinx解决的。国内有一个做的 中文版的sphinx 叫coreseek。 相信我,肯定可以解决你的性能问题的。
追问
能帮我搞定我的吗?有偿的 可以的话 加我 61551059
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式