|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
Есть база на 100 тыс. записей - 40Мб, почти все поля FULLINDEX Хостер говорит: сильно большая нагрузка: Top Process %CPU 11.0 /usr/bin/perl cat.pl скрипт cat.pl - делает: SELECT и UPDATE по основной таблице (100000 записей) и 2 SELECTа по 2-м мелким таблицам. Хостер: Processor: Pentium(R) 4 CPU 2.40GHz Memory: 1025596k/1040320k Слишком большая база или кривой скрипт? Спасибо за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2003, 12:45 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
Cтранно. Сто тысч записей - это не так уж и много... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2003, 13:11 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
Я не удивлюсь, если стоит ограничение какого либо характера! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2003, 14:08 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
а что за fullindex ? fulltext что ли ? Структуру таблицы и EXPLAIN для SELECT-а покажи Сделай замеры, какие запросы долго выполняются ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2003, 15:46 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
Видимо он имеет ввиду индекс полностью по всему столбцу (а столбец текстовый). Провайдер всерается из-зи того что все вопросы кеируются и выжирают много оперативки. Попробуй указать при запросах - НЕ КЕШИРОВАТЬ ЗАПРОС, забыл как называеться ета фишка, каторую вставляешь в конец запроса. Книга дома, по памяти не помню. Но я думаю дело в этом. Правда скрипт будет отрабатываться дольше. Всем срочно задавать вопросы на http://forum.webcommand.ru/ ето как раз новый форум и на нем видимо будут разсматриваться все темы. Задавай вопросы - тебе ответят!!! Сделаем форумы какие будут требовать посетители. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2003, 11:47 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
Если по всем полям индекс, то вполне возможно, что апдейт вызывает перезапись тех или иных (а может и всех) индексов. Это тоже может отнимать ресурсы. Какова хоть посешаемость ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2003, 15:48 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
Cкрипт top.pl выполняется каждый час. Грузит сервер: Top Process %CPU 10.0 /usr/bin/perl top.pl таблица: url varchar(120) not null, title varchar(80) not null, description varchar(200) not null, keywords varchar(200) not null, dat DATE not null, category TEXT not null, catid TEXT not null, rank INT(5) not null, url2 TEXT not null, FULLTEXT (url), FULLTEXT (title), FULLTEXT (description), FULLTEXT (keywords), UNIQUE (url), UNIQUE (title) Код: #!/usr/bin/perl use DBI; require "/home/metaws/public_html/cgi-bin/main.pl"; push (@INC, "$homedir/"); $step=30; print "content-type:text/html\n\n"; $kritery="SELECT url, title, description, rank FROM urls WHERE rank > '0' ORDER BY rank DESC LIMIT 0, $step"; my $dbh = DBI -> connect("dbi:mysql:database=$dbname;host=$dbhost;port=$dbport", "$dblogin", "$dbpass") or die "Can't connect to sql server. Reason: $DBI::errstr"; if (!$ENV{'MOD_PERL'}) { $dbh->{'Warn'} = 0;} my $result = $dbh->prepare("$kritery") or die "Can't connect to sql server. Reason: $DBI::errstr" ; $result->execute(); while (my $ln = $result->fetchrow_hashref()) { $title=$ln->{'title'}; $rank=$ln->{'rank'}; if (length($title) > 40) { $title=substr($title,0,37); $title.="..."; } $list.="<li><a href=\"http://$ln->{'url'}\">$title</a> ($rank)</li>\n"; } $dbh->disconnect(); $list= "<ol>$list</ol>\n"; open (COUNTER, ">$html/toptext.txt"); print COUNTER "$list"; close (COUNTER); print $list; __________________________________________ И от него гнется Pentium® 4 CPU 2.40GHz! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2003, 08:43 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2003, 12:04 |
|
Хостер гнется от базы на 100 тыс. записей!
|
|||
---|---|---|---|
#18+
mysql до какой-то версии (не помню какой именно) в запросах типа SELECT .... ORDER BY field_name DESC - для сортировки не использует индекс для field_name (для меня это тоже был сюрприз :)) Сделай EXPLAIN SELECT url, title, description, rank FROM urls WHERE rank > '0' ORDER BY rank DESC LIMIT 0, $step и почитай мануал на тему EXPLAIN Возможно стоит завести поле rank1 = 1000000000 - rank (таким образом избавится от DESC) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2003, 13:13 |
|
|
start [/forum/topic.php?fid=47&fpage=705&tid=1855925]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 161ms |
0 / 0 |