为了账号安全,请及时绑定邮箱和手机立即绑定

一张表5000万数据,就2个字段一个ID自增一个EMAIL,怎么查询163与126用户?

/ 猿问

一张表5000万数据,就2个字段一个ID自增一个EMAIL,怎么查询163与126用户?

思梦PHP 2018-03-14 11:35:26

一张表5000万数据,就2个字段一个ID自增一个EMAIL,怎么查询163与126用户?

查看完整描述

13 回答

?
捷克轩

做个索引 以字符串的后7位作为索引的内容

查看完整回答
1 反对 回复 2018-03-16
?
臭屁的蜗牛

sql很容易写,量这么大,没有索引效率太低了吧

查看完整回答
1 反对 回复 2018-03-15
  • 思梦PHP
    思梦PHP
    呃呃呃,索引什么都可以加的,就是要怎么实现
  • 臭屁的蜗牛
    臭屁的蜗牛
    如果只有两个字段,那就是select * from Table_name where EMAIL like "%@163.com" or EMAIL like "%@126.com" 但是建议你可以建立一个索引表,该表有一个字段email_type_index,如果163的是1,126的是2,以此类推,两外,原始数据入库的时候,可以将这样的索引信息记录,尽量使用int类型,少用字符串,提高检索效率
  • rgfxb
    rgfxb
    111
?
慕少3274410

使用solr搜索工具

查看完整回答
反对 回复 2018-03-31
?
_小花_

分段查呢

查看完整回答
反对 回复 2018-03-16
?
不忘灬初心

不懂帮顶

查看完整回答
反对 回复 2018-03-15
?
慕九州401297

我也想看看怎样解决

查看完整回答
反对 回复 2018-03-15
?
秋益

只是这样需求的话建议加一个字段,使用int标识邮件域名126:1,163:2,qq:3,etc,加索引,5000万无压力

查看完整回答
反对 回复 2018-03-15
?
慕少3274410


select * from 表名 where email like %163.com and email like %162.com

查看完整回答
反对 回复 2018-03-15
  • 思梦PHP
    思梦PHP
    首先sql语句就是有问题的,是or不应该是and 然后从性能上说太低,不适合
?
winlion

第一必须建索引

第二不建议使用like 可以使用locate

查看完整回答
反对 回复 2018-03-14
?
qq_JWang_03215367
select * from db where email likes %163.com or email likes %126.com


查看完整回答
反对 回复 2018-03-14
?
一身轻001


建议增加邮箱类型的索引字段。这样查询性能会高很多。

否则模胡匹配,效率比较低。

查看完整回答
反对 回复 2018-03-14
  • 思梦PHP
    思梦PHP
    你好,就算加了索引,左半边原则还是会导致索引失效,导致全表扫描
?
cherrysMen3240611

有索引吗

查看完整回答
反对 回复 2018-03-14
?
FightingBoy

用模糊查询。

查看完整回答
反对 回复 2018-03-14
  • 思梦PHP
    思梦PHP
    呃呃呃,模糊查询就导致全表扫描了,5000万数据,,,,,估计你这个语句写完执行,服务器就阻塞了

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信