powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хостер гнется от базы на 100 тыс. записей!
9 сообщений из 9, страница 1 из 1
Хостер гнется от базы на 100 тыс. записей!
    #32198315
Witali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база на 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
Хостер гнется от базы на 100 тыс. записей!
    #32198356
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cтранно.
Сто тысч записей - это не так уж и много...
...
Рейтинг: 0 / 0
Хостер гнется от базы на 100 тыс. записей!
    #32198470
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не удивлюсь, если стоит ограничение какого либо характера!
...
Рейтинг: 0 / 0
Хостер гнется от базы на 100 тыс. записей!
    #32198646
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что за fullindex ? fulltext что ли ?
Структуру таблицы и EXPLAIN для SELECT-а покажи
Сделай замеры, какие запросы долго выполняются
...
Рейтинг: 0 / 0
Хостер гнется от базы на 100 тыс. записей!
    #32199445
aleksey_24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо он имеет ввиду индекс полностью по всему столбцу (а столбец текстовый).
Провайдер всерается из-зи того что все вопросы кеируются и выжирают много оперативки.
Попробуй указать при запросах - НЕ КЕШИРОВАТЬ ЗАПРОС, забыл как называеться ета фишка, каторую вставляешь в конец запроса.
Книга дома, по памяти не помню.
Но я думаю дело в этом.
Правда скрипт будет отрабатываться дольше.


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


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