以下查询在4.5Gb MySql数据库上运行时,2.5Ghz双核Windows Server 2008 R2企业版需要0.7s。 sIndex10
是一个varchar(1024)柱类型:MySQL缓慢查询'COUNT'
SELECT COUNT(*) FROM e_entity
WHERE meta_oid=336799 AND sIndex10 = ''
一种EXPLAIN
显示以下信息:
id: 1
select_type: SIMPLE
table: e_entity
type: ref
possible_keys: App_Parent,sIndex10
key: App_Parent
key_len: 4
ref: const
rows: 270066
extra: Using Where
有230060行匹配所述第一条件和124216行子句AND
操作者匹配。 meta_oid
已编入索引,尽管sIndex10
也已编入索引,但我认为它正确无法将此索引作为FORCE INDEX (sIndex10)
收录,所用时间较长。 我们查看了配置参数,例如innodb_buffer_pool_size
,它们看起来也是正确的。
鉴于此表已经有642532条记录,我们是否已经达到了mysql可以提供的性能的顶部?在这一点上投资硬件是唯一的出路吗?
你有 'possible_keys:App_Parent,sIndex10' WHT宇没有meta_oid? 。你在这个专栏有适当的索引吗?最终显示您的表格架构 – scaisEdge
'App_Parent'是'meta_oid'列的索引名称 –
如果app_parent覆盖BOTH列,可能会实现小的性能增益 – Strawberry