#1 2012.07.01 14:37

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Капец нагрузка на сервер 80-100%

И это все mysql. Вот как организовать поиск по сайту я хз.
Может просто сделать толковый ситемап скормить его гуглу и воспользоватся гугловским поиском? Как такая идея?

Неактивен

#2 2012.07.01 17:59

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

сторонними поисковиками многое пользуются. а то, что нагрузка 80-100%, вероятно, следствие плохой архитектуры. поиск, небось, через LIKE ведется?

Неактивен

#3 2012.07.01 20:04

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Именно через него вот код запроса

Код:

1
lt;? $query = preg_replace('/[^a-zA-Zа-яА-ЯёЁ0-9]/u', ' ', @$_GET['query']); $like_arr = explode(' ', preg_replace('/\s+/', ' ', $query)); $like = ''; $query = ''; $true = ''; $i = 0; foreach ($like_arr as $v) { $v = trim($v); if (mb_strlen($v)>=3) { if (++$i > 10) break; $like .= " `info` LIKE ('%$v%') &&"; $query .= ', '. $v; } } $like = substr($like, 0, -3); $query = substr($query, 2); $navig = new Navig("SELECT COUNT(*) FROM `" . Config::$action . "` WHERE{$like} AND `delete` = 0", @$_GET['page'], '?query=' . urlencode($query) . '&page={page}', 10); $qin = mysql_query("SELECT * FROM `" . Config::$action . "` WHERE{$like} AND `delete` = 0 ORDER BY `rating` DESC LIMIT " . $navig->limit);

Неактивен

#4 2012.07.01 20:29

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

САм знаю что ужасен но не думал что на столько
Добавлено спустя    34 секунды:
Да и вообще я в mysql не очень все ленюсь почитать про нее

Неактивен

#5 2012.07.01 20:42

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

LIKE подобным образом на любой субд работает. Как частичное решение - убери первый процент в LIKE, чтобы начало было жестко определено. В таком случае не будет перебора, а будет использоваться индекс на `info`. Ну, и само собой, если индекса нету - поставить.

Неактивен

#6 2012.07.01 22:41

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Капец нагрузка на сервер 80-100%

Вроде как сфинкс система есть, вам естественно лучше знать.

Неактивен

#7 2012.07.02 00:40

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

tipsun
Когда то пытался с ним подружится но потом забил. Все вроде норм было.
Добавлено спустя   1 минуту  3 секунды:
Gemorroj
Спасибо сейчас так и сделаю.
Решил переписать все и дополнение написать на си вообщем сгрузить всю базу в оперативку.

Неактивен

#8 2012.07.02 10:14

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Gemorroj написал:

LIKE подобным образом на любой субд работает. Как частичное решение - убери первый процент в LIKE, чтобы начало было жестко определено. В таком случае не будет перебора, а будет использоваться индекс на `info`. Ну, и само собой, если индекса нету - поставить.

Заменил вчера и пошел спать сегодня посмотрел оно вообще не находит если более одного слова в поиске

Неактивен

#9 2012.07.02 10:33

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

TLENS написал:

Gemorroj написал:

LIKE подобным образом на любой субд работает. Как частичное решение - убери первый процент в LIKE, чтобы начало было жестко определено. В таком случае не будет перебора, а будет использоваться индекс на `info`. Ну, и само собой, если индекса нету - поставить.

Заменил вчера и пошел спать сегодня посмотрел оно вообще не находит если более одного слова в поиске. А поиск и правда заметно ускорился

Неактивен

#10 2012.07.02 11:45

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

TLENS, ну епт..
SELECT * FROM `table` WHERE `info` LIKE "test%" OR `info` LIKE "some%";

Неактивен

#11 2012.07.02 13:59

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Именно так и сделал.
Добавлено спустя    34 секунды:
Возможно слово не совпало сейчас посмотрю внимательнее

Неактивен

#12 2012.07.02 17:49

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Блин увеличил себе ресурсов на 100% все равно сайт висит нагрузка 50-60% ладно вообщем мне не остается ничего как писать дополнение. Такой вид оптимизации самый лучший как по мне.

Неактивен

#13 2012.07.03 09:27

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

TLENS, что ты дополнять собрался? у тебя архитектурная проблема.

Неактивен

#14 2012.07.03 10:50

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Я хочу вынести базу данных в оперативную памьять а не в mysql все подсчитал у меня всего пару сотен она займет. Поиск в оперативной памьяти будет гораздо быстрее я так думаю. И нагрузки на базу такой не будет.

Неактивен

#15 2012.07.03 10:54

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

TLENS, перезагрузка сервера и вся оперативка очистится. В mysql есть тип таблиц - MEMORY. данные хранятся в оперативной памяти. изучи сначала возможности субд, и поменяй архитектуру. писать свой сишный модуль стоит только если для саморазвития.

Неактивен

#16 2012.07.03 11:51

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Gemorroj написал:

перезагрузка сервера и вся оперативка очистится.

Не вижу это проблемой, что мешает её загрузить снова в оперативку при рестарте?

Gemorroj написал:

В mysql есть тип таблиц - MEMORY

Вот это уже интереснее спс.

P.S. Только что пересчитал все слова в базе их всего навсего 64 тыс. Сделаю все тегами и поиск по тегам будет.

Неактивен

#17 2012.07.03 11:54

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

что интереснее?? ты готов после перезагрузки сервера потерять все данные??? настрой лучше субд получше. ( http://lib.custis.ru/Как_готовить_MySQL_(Андрей_Аксенов,_ADD-2012 ) измени алгоритм поиска. сфинкс тот же, в конце-концов присобачь.

Неактивен

#18 2012.07.03 12:10

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Странно не могу залить таблицу. #1114 - The table 'video' is full 1,664(16mb) строк влазит и все.
Несколько вопросов:
1) Где стоит данное ограничение
2) Почему MyISAM 102,886 строк занимает всего 23 mb с тремя индексами. А MEMORY 1664 строк занимает 16 mb. 102866 / (1664 / 16) = 989 mb вес таблицы.
3) Не слишком ли длинная строка. я хз почему но она занимает аж 10 кб.
Характеристика    Значение
Формат    статический
Сравнение    utf8_general_ci
Строки    1,664
Длина строки ø    9,985
Размер строки ø    10,092 Байт
В то время как предыдущая занимает всего    220 Байт

Формат    динамический
Сравнение    utf8_general_ci
Строки    102,886
Длина строки ø    207
Размер строки ø    220 Байт
Создание    Июл 03 2012 г., 12:33
Последнее обновление    Июл 03 2012 г., 12:38

Неактивен

#19 2012.07.03 14:21

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Gemorroj написал:

Как_готовить_MySQL_(Андрей_Аксенов,_ADD-2012 )

Ладно все же пришло время почитать

Неактивен

#20 2012.07.03 18:51

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

тебе нужен InnoDB, как, надеюсь, ты поймешь из видео. MEMORY тебе не нужен, потому что ты потеряешь данные.

Неактивен

#21 2012.07.03 21:17

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Капец нагрузка на сервер 80-100%

Что нужно сделать:
1. оптимизировать мускул под твой сервер
2. сделать код норм.
Ответы:
1. http://habrahabr.ru/post/108418/  - всё понятно и внятно
2. говнокод не есть айс - www.php.net
P.S. и вообще гугл хорошо выручает, если грамотно его спросить

Отредактировано WapStyle (2012.07.03 21:18)

Неактивен

#22 2012.07.03 21:26

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

WapStyle Да ты просто КЕП)) Сама очевидность.

Gemorroj написал:

тебе нужен InnoDB, как, надеюсь, ты поймешь из видео. MEMORY тебе не нужен, потому что ты потеряешь данные.

Как не странно но после просмотра видео сразу полез переделать таблицу в innobd да а вот на счет потерь данных я прочитал об этом и готов был пойти на жертву делать дополнительную таблицу.
Кстати производительность раз в 10 изменилась. Сейчас буду рыть по поводу сфинкса.

Неактивен

#23 2012.07.05 20:28

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Капец нагрузка на сервер 80-100%

Вообщем установил сфинкс но руки не дошли его настроить загорелся идеей тегов вообщем закончил нагрузка теперь в среднем 4-10% плюс мьягкий поиск т.е. можно искать like ('%слово%') OR like ('%слово2%') и т.д.

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.015 s