Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хостер гнется от базы на 100 тыс. записей! / 9 сообщений из 9, страница 1 из 1
03.07.2003, 12:45
    #32198315
Witali
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
Есть база на 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

Слишком большая база или кривой скрипт?
Спасибо за ответ.
...
Рейтинг: 0 / 0
03.07.2003, 13:11
    #32198356
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
Cтранно.
Сто тысч записей - это не так уж и много...
...
Рейтинг: 0 / 0
03.07.2003, 14:08
    #32198470
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
Я не удивлюсь, если стоит ограничение какого либо характера!
...
Рейтинг: 0 / 0
03.07.2003, 15:46
    #32198646
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
а что за fullindex ? fulltext что ли ?
Структуру таблицы и EXPLAIN для SELECT-а покажи
Сделай замеры, какие запросы долго выполняются
...
Рейтинг: 0 / 0
04.07.2003, 11:47
    #32199445
aleksey_24
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
Видимо он имеет ввиду индекс полностью по всему столбцу (а столбец текстовый).
Провайдер всерается из-зи того что все вопросы кеируются и выжирают много оперативки.
Попробуй указать при запросах - НЕ КЕШИРОВАТЬ ЗАПРОС, забыл как называеться ета фишка, каторую вставляешь в конец запроса.
Книга дома, по памяти не помню.
Но я думаю дело в этом.
Правда скрипт будет отрабатываться дольше.


Всем срочно задавать вопросы на
http://forum.webcommand.ru/
ето как раз новый форум и на нем видимо будут разсматриваться все темы.
Задавай вопросы - тебе ответят!!!
Сделаем форумы какие будут требовать посетители.
...
Рейтинг: 0 / 0
04.07.2003, 15:48
    #32199856
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
Если по всем полям индекс, то вполне возможно, что апдейт вызывает перезапись тех или иных (а может и всех) индексов. Это тоже может отнимать ресурсы. Какова хоть посешаемость ?
...
Рейтинг: 0 / 0
07.07.2003, 08:43
    #32200411
Witali
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
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!
...
Рейтинг: 0 / 0
07.07.2003, 12:04
    #32200680
Stellar.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
Код: plaintext
1.
CREATE INDEX urls_rank_key ON urls(rank);
...
Рейтинг: 0 / 0
07.07.2003, 13:13
    #32200816
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостер гнется от базы на 100 тыс. записей!
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)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хостер гнется от базы на 100 тыс. записей! / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]