小编Pea*_*Gen的帖子

选择查询花费的时间比它应该的要多

我有一个包含近 2300 万条记录的 MySQL 数据库表。这个表没有主键,因为没有什么是唯一的。它有 2 列,均已编入索引。下面是它的结构:

在此处输入图片说明

下面是它的一些数据:

在此处输入图片说明

现在,我运行了一个简单的查询:

SELECT `indexVal` FROM `key_word` WHERE `hashed_word`='001'
Run Code Online (Sandbox Code Playgroud)

不幸的是,这花了超过 5 秒的时间来检索数据并将它们显示给我。我未来的表将有1500亿条记录,所以这个时间非常非常高。

我运行Explain命令看看发生了什么。结果如下。

在此处输入图片说明

然后我使用以下命令运行配置文件。

SET profiling=1;
SELECT `indexVal` FROM `key_word` WHERE `hashed_word` = '001';
SHOW profile;
Run Code Online (Sandbox Code Playgroud)

下面是分析的结果:

在此处输入图片说明

以下是有关我的表的更多信息:

在此处输入图片说明

那么,为什么这需要这么长时间?他们也被索引了!将来,我必须运行很多LIKE命令,所以这花费了太多时间。出了什么问题?

mysql innodb performance select

10
推荐指数
2
解决办法
5万
查看次数

标签 统计

innodb ×1

mysql ×1

performance ×1

select ×1