MySQL таблица около 3гб, как оптимизировать?

12
FFFFx029A
На сайте с 01.09.2007
Offline
142
1062

Всем доброго времени суток) нужен совет!

Есть таблица, там есть одно поле в котором много текста, даже при выборке 1й записи - тупит сильно((( Сделал кеш страниц, после занесения в кеш - открывается шустро.., но перед тем как все занесеться в кеш - по 1му разу хорошо потупит( Думаю может в файлы позагонять содержимое где многабукав*? записей более 90.000

поправлено:

уже вроде не тупит, сделал "OPTIMIZE TABLE" и поля где указаны ID раздела и категория поставил в INDEX (заметно увеличилась скорость, вполне терпимо стало).. Хотя может еще чёнить можно сделать? primary key есть...

http://www.youtube.com/watch?v=Gyl4E4EcPdc (http://www.youtube.com/watch?v=Gyl4E4EcPdc) - партнёрка от Мавроди и МММ))) http://miniwm.ru/soft.php?read=917 (http://miniwm.ru/soft.php?read=917) CMS MiniWM v2.8 - 49.99$
pikasso
На сайте с 27.01.2008
Offline
150
#1

На самом деле 3 гига для базы не так уж и много. Покажите сам запрос, может в нем тоже можно что оптимизировать ?

FFFFx029A
На сайте с 01.09.2007
Offline
142
#2
pikasso:
На самом деле 3 гига для базы не так уж и много. Покажите сам запрос, может в нем тоже можно что оптимизировать ?

Там в основном всё просто:

select xxxxxxxxxx from `bigtable` where `cat`='111' AND `type`='1111'

select xxxxxxxxxx from `bigtable` where `cat`='111'

select xxxxxxxxxx from `bigtable` where `type`='1111'

select xxxxxxxxxx from `bigtable` where `id`='111'

кстати в таблице содержатся поля LONGTEXT (эт более 64кб)

pikasso
На сайте с 27.01.2008
Offline
150
#3
FFFFx029A:
Там в основном всё просто:
select xxxxxxxxxx from `bigtable` where `cat`='111' AND `type`='1111'
select xxxxxxxxxx from `bigtable` where `cat`='111'
select xxxxxxxxxx from `bigtable` where `type`='1111'
select xxxxxxxxxx from `bigtable` where `id`='111'

Да, тогда на самом деле проблема не в запросах.

Единственное что тогда приходит на ум, это:

1. CHECK/REPAIR/ANALYZE/OPTIMIZE TABLE.

2. Правильно настроить индексы и удостоверится что они на самом деле используются (в вашем примере соответствующие индексы на: cat, type, id).

N
На сайте с 06.05.2007
Offline
419
#4

А что, собственно, вам не понятно в документации http://dev.mysql.com/doc/refman/5.1/en/optimization.html ?

Ну много букв, так и вы ведь не бесплатно пишите программы. Окупится время.

Кнопка вызова админа ()
FFFFx029A
На сайте с 01.09.2007
Offline
142
#5
pikasso:
Да, тогда на самом деле проблема не в запросах.
Единственное что тогда приходит на ум, это:
1. CHECK/REPAIR/ANALYZE/OPTIMIZE TABLE.
2. Правильно настроить индексы и удостоверится что они на самом деле используются (в вашем примере соответствующие индексы на: cat, type, id).

Да так и сделал, стабилизировалось, думал может еще ченить можно...

N
На сайте с 06.05.2007
Offline
419
#6

FFFFx029A, осталось стекло протереть и помолиться.

документацию читал? что конкретно не понятно?

FFFFx029A
На сайте с 01.09.2007
Offline
142
#7
netwind:
FFFFx029A, осталось стекло протереть и помолиться.
документацию читал? что конкретно не понятно?

на самом деле давно в доки не заглядывал, думал всё знаю) Крутилось в голове что-то вроде "распилить" таблицу и часть либо в другую таблицу или в файлы..., ну и решил вот узнать как тут народ решает такие задачи с нагрузками..

R
На сайте с 23.10.2007
Offline
21
#8

Добавьте еще индекс на 2 поля (cat, type)

FFFFx029A
На сайте с 01.09.2007
Offline
142
#9
rilian:
Добавьте еще индекс на 2 поля (cat, type)

да эт сделал уже, а id primary key стоит.., может еще чото можно?

R
На сайте с 23.10.2007
Offline
21
#10
FFFFx029A:
да эт сделал уже, а id primary key стоит.., может еще чото можно?

я имею ввиду индекс по двум полям одновременно, помимо двух отдельных индексов по каждому из полей

---

еще, если у вас данные относительно редко обновляются, либо, кол-во категорий и/или типов не меняется, рекомендую разнести все тексты по разным таблицам, например bigtable_cat1, bigtable_cat2 итд

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий