У меня есть таблица, которая имеет около 1 миллиона строк (размер на физическом диске составляет почти 8 ГБ, поскольку в ней есть текстовый столбец), что занимает много времени для любой транзакции.В частности, для «выбора» требуется огромное время, например, для запроса подсчета без каких-либо условий, например, около 20 минут, например, select count(*) from TestPerformance
.
Схема таблицы:
Имя: 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 ГБ, но производительность ничего не изменила.
Как ускорить транзакцию этой таблицыбез удаления каких-либо данных?
Я не эксперт БД.Просьба представить ваши предложения по улучшению производительности таблицы.