我有一张表格,其中有大约100万行(物理磁盘上的大小接近8 GB,因为它有一个文本列),这会占用大量时间用于任何事务。特别是对于“选择”,需要花费很多时间。计数查询无需任何条件大约需要20分钟,即select count(*) from TestPerformance
。查询MySQL中的巨大表格
表模式是:
名称:TestPerformance
Field Type Null Key Default Extra
ID int(11) NO PRI null
TEXT text YES null
CATEGORY varchar(100) YES MUL null
DDOMAIN varchar(100) YES null
NETWORK varchar(100) YES null
NODE varchar(100) YES null
ENTITY varchar(100) YES MUL null
SEVERITY int(11) YES null
TTIME bigint(20) YES null
SOURCE varchar(255) NO MUL null
HELPURL varchar(100) YES null
WEBNMS varchar(100) YES null
GROUPNAME varchar(100) YES null
OWNERNAME varchar(25) NO PRI null
和索引
Table Non_unique Key_name Seq_in_index Column_name
TestPerformance 0 PRIMARY 1 ID
TestPerformance 0 PRIMARY 2 OWNERNAME
TestPerformance 1 TestPerformance0_ndx 1 ID
TestPerformance 1 TestPerformance1_ndx 1 OWNERNAME
TestPerformance 1 TestPerformance_ndx 1 CATEGORY
TestPerformance 1 TestPerformance_ndx 2 SOURCE
TestPerformance 1 TestPerformance_ndx1 1 ENTITY
TestPerformance 1 TestPerformance_ndx2 1 SOURCE
我已经调整key_buffer
大小为1 GB,但没有在性能上变化。
如何在不删除任何数据的情况下加快此表的交易?
我不是数据库专家。请提供您的建议以改善表格的性能。
您没有向我们显示导致问题的查询。 –
使用mysqldump查找需要很长时间的查询。 – vikky
'SELECT count(id)FROM TestPerformance'花费很长时间吗?只选择你需要的字段。 –