mysql数据表达到千万级别的查询

qq_35084317 2016-09-18 10:21:45
mysql的一张数据表,数据量达到了千万级别,查询时从中获取一类数据最近的一条数据,怎么进行数据查询,首先排除分区分表的做法,索引我加了主键索引:下面我举个例子:

select lasttime from userlog where username = 'zhangsan' order by lasttime desc limit 1;
类似这个语句!userlog这张表用来记录用户相关操作,lasttime是用户操作的时间,查询张三的时候发现查询特别慢,,我在username和lasttime上创建了索引。。。可是查询时间还是很长!
...全文
487 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2016-09-18
  • 打赏
  • 举报
回复
以文本方式贴出 不要贴截图 explain select ... show index from .. 以供分析。
qq_35084317 2016-09-18
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
如果username和lasttime建立了联合索引 不应该慢的 看看查询计划
我使用explain查询了一下,,我之前给username和lasttime分别加了普通索引,,后来我有给数据表加了组合索引。。但是依然很慢。。 explain查询的结果是ref。。 username字段,张三的数据有大约22w+的数据,创建联合索引,光是索引都特别大,而且数据库的存储引擎使用的是innerDB的
qq_35084317 2016-09-18
  • 打赏
  • 举报
回复
username字段,张三的数据有大约22w+的数据,创建联合索引,光是索引都特别大,而且数据库的存储引擎使用的是innerDB的
rucypli 2016-09-18
  • 打赏
  • 举报
回复
如果username和lasttime建立了联合索引 不应该慢的 看看查询计划
LongRui888 2016-09-18
  • 打赏
  • 举报
回复
这个只能创建索引,组合索引: create index idx_userlog_xxx on userlog(username,lasttime desc)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧