首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么当我不使用多个索引时,查询会变得非常慢

问为什么当我不使用多个索引时,查询会变得非常慢
EN

Stack Overflow用户
提问于 2020-11-13 13:54:42
回答 1查看 145关注 0票数 0

我正在使用TiDB做一些测试。

我创建了一个表,如下

代码语言:javascript
复制
CREATE TABLE users(
 id BIGINT PRIMARY KEY NOT NULL,
 updated BIGINT NOT NULL
)

我用2个索引将大约100,000,000行加载到这个表中

代码语言:javascript
复制
CREATE INDEX hash_index USING HASH ON users (id);
CREATE INDEX btree_index USING BTREE ON users (updated);

我发现查询速度变得非常慢,需要几秒钟

查询sql如下。我只使用了第一个索引。

代码语言:javascript
复制
SELECT * FROM users where id=1999;

我通过删除第二个索引updated解决了这个速度慢的问题

我认为第二个索引导致了这个问题。

我只是想知道这是怎么回事?

EN

回答 1

Stack Overflow用户

发布于 2020-12-04 09:54:30

  1. 您的TiDB版本是什么?
  2. 用户表中的id列是主键。执行计划应该是Point_Get_1的。我认为索引应该没有影响。

+-------------+---------+---------+------+---------------+--------------+-+| id | estRows | actRows | task | access object | execution info | operator info | memory | disk |+------+---------------+----------------------------------------------------------------+---------------+--------+------+| Point_Get_1 | 1.00 |1|根|表:用户|时间:1.302907ms。循环数:2,Get:{num_rpc:1,total_time:1.2536ms} |句柄:10|不适用|不适用|+-------------+---------+---------+------+---------------+--------------------------+---------------+--------+------+

我想你可以选择“解释分析* FROM users where id=1999;”。SQL的执行计划是否相同?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64816153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档