以下查詢在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