gpt4 book ai didi

sql - MySQL MyISAM 表性能问题重温

转载 作者:行者123 更新时间:2023-11-29 15:10:17 25 4
gpt4 key购买 nike

此问题与 this one 相关.

我有一个具有以下结构的页面表:

CREATE TABLE  mydatabase.page (
pageid int(10) unsigned NOT NULL auto_increment,
sourceid int(10) unsigned default NULL,
number int(10) unsigned default NULL,
data mediumtext,
processed int(10) unsigned default NULL,
PRIMARY KEY (pageid),
KEY sourceid (sourceid)
) ENGINE=MyISAM AUTO_INCREMENT=9768 DEFAULT CHARSET=latin1;

数据列包含每条记录大小约为 80KB - 200KB 的文本。 data列中存储的数据总大小约为1.5GB。

执行此查询需要 0.08 秒:

select pageid from page

但执行此查询大约需要 130.0 秒:

select sourceid from page

如您所见,我在 page.pageid 上有一个主索引,在 page.sourceid 上有一个索引。那么第二个查询应该花费那么那么长吗?

编辑#1

说明已返回

id select_type table type  possible_keys key      key_len ref rows Extra
1 SIMPLE page index sourceid 5 9767 Using index

很抱歉,分析不起作用...MySQL(其 4.1.22)无法识别 SHOW PROFILE 查询。

显示索引已返回

Table Non_unique Key_name  Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
page 0 PRIMARY 1 pageid A 9767 BTREE
page 1 sourceid 1 sourceid A 3255 YES BTREE

最佳答案

您是否尝试强制使用索引?喜欢:

SELECT sourceid FROM page USE INDEX (sourceid_index)

像 sgehrig 注释一样,使用 EXPLAIN 检查是否使用了索引?并分享结果?

EXPLAIN select sourceid from page

它还可以帮助分享索引的定义:

SHOW INDEX FROM page

关于sql - MySQL MyISAM 表性能问题重温,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/847154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com