暂无图片
阿里mysql没有走主键查询走了全表扫描
我来答
分享
暂无图片 匿名用户
阿里mysql没有走主键查询走了全表扫描

阿里mysql 5.6 数据库根据主键in查询,主键为字符串偶尔会出现全表扫描,in子名最多5个连续的字符串, 表的碎片率30%,又没办法手动重现。有谁遇到个吗。

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
chengang

in 这个where 条件过滤后的数据与全表的数据占比是什么情况呢?

可以贴一下执行计划出来

暂无图片 评论
暂无图片 有用 0
打赏 0
陈伟华


select <column_name> from <table_name> where id in ('220316022061585','220316022061586','220316022061587','220316022061588')

暂无图片 评论
暂无图片 有用 0
打赏 0
chengang

表 id即为主键吗? ID也是varchar类型吗?

如果上述两个成立,那这个语句是不可能会花到4S的啊。

暂无图片 评论
暂无图片 有用 0
打赏 0
陈伟华
2022-03-17
id为主键 varchar(30),我也想说不可能,但确实全表扫描 扫了118.72K行,这个行数据 跟记录数是差不多的
陈伟华
2022-03-17
手工执行查看执行计划走主键索引。
chengang

show variables like ‘%eq_range_index_dive_limit%’ 看一下这个参数是什么值呢

暂无图片 评论
暂无图片 有用 0
打赏 1
陈伟华
2022-03-17
这个值 是 10
陈伟华
2022-03-17
in 的数量少于10个
chengang
答主
2022-03-17
那现在你可以做两个尝试。一个是重建一下此表。二个是把in改写为or试试。如果是生产就先走试第二种
展开全部评论(1条)
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL 零外键关联是什么?
回答 1
MySQL零外键关联是指在MySQL中,不使用外键约束,而是通过其他方式实现表之间的关联。
需要什么参数,能让stat显示birth字段的值呢
回答 1
birth:无法获取文件创建时间linux环境下的文件未存储文件创建时间。
mysql update 子查询问题
回答 7
UPDATEA&nbsp;&nbsp;LEFTJOINB&nbsp;ONA.idB.idSETA.name&nbsp;B.name&nbsp;;&nbsp;
MySQL LIKE %% 查询不走索引 有什么好办法?
回答 3
已采纳
like%%属于全文搜索FullTextSearch,MySQL提供了全文搜索的方案,但仍然不能支持较大的数据量。具体可以参考:https://dev.mysql.com/doc/refman/8.0
MySQL服务这里显示正在运行,但是命令显示拒绝访问?
回答 1
✅解决方法:使用管理员权限打开cmd.右键以管理员权限打开。
请问带时间字段的慢sql怎么优化
回答 2
看一下customermessage表结构
想通过unity链接其他人f的MySQL但是本身电脑没有MySQL, 可以吗?
回答 3
本身电脑没有MySQL可以的通过unity链接其他人f的MySQL需要下载connector,https://dev.mysql.com/downloads/connector/net/选.NET&a
mysql 32位和64位有哪些差距
回答 1
已采纳
现在还有32位的操作系统吗?一般选择和操作系统适配的。都64位吧。寻址范围都不一样。
mysqldump导出的时候报错: mysqldump: Couldn't execute 'SHOW FIELDS FROM `。
回答 1
已采纳
视图有问题呀,查看视图建表信息,不行就把试图删了再试试备份;
mysql 语句放存储结构报无效数字,单独拿出来又没问题,这是什么原因?
回答 1
你dump导出一下看看。