我有一張表格,其中有大約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'花費很長時間嗎?只選擇你需要的字段。 –