Оптимизация MYSQL DB - 5 GB. 50 000 000+ строк

123 4
R
На сайте с 03.08.2012
Offline
131
#11

Что сделал в итоге:

1. Усилил сервер: купил больше оперативки и увеличил количество процессоров.

2. Перешел на PHP 7.1

3. Сервер базы остался прошлой версии, не получилось пока перейти на новую версию.

4. Все таблицы из innoDB перевел в MYISAM.

5. Немного изменил архетиктуру БД. В таблице где выбирал ID организаций по категории - добавил ещё id города.

Теперь запрос выглядит так:

SELECT organization_id FROM `organization_category` WHERE category_id=90 AND city_id=518

Благодаря такому запросу теперь выборка не по 100 000 записей идет, а в большинстве случаев до 5 000 записей.

После увлечения процессоров и обновления до PHP 7.1 сам скрипт (не считая запросы в БД) стал работать до 100 раз быстрее.

Ну и после добавления города в запрос и перевода таблиц в другой движок - БД тоже стала работать намного быстрее.

Как итог: теперь практически все страницы открываются быстро. До 0.2 сек.

Конечно хотелось бы ещё быстрее, т.к. Google Page Speed иногда ругается, что слишком долгий ответ от сервера.

+ осталась проблема с некоторыми категориями в городе Москва. Там при выборке id организаций не до 5000 записей, а около 50 000 записей, такие страницы грузятся 1-3 сек.

Но пока так оставлю. Спасибо всем за советы.

edka
На сайте с 17.01.2010
Offline
208
#12
revered:
Что сделал в итоге:
1. Усилил сервер: купил больше оперативки и увеличил количество процессоров.

А диск стоит SSD ?

R
На сайте с 03.08.2012
Offline
131
#13
edka:
А диск стоит SSD ?

Совершенно верно, SSD.

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#14
4. Все таблицы из innoDB перевел в MYISAM.

MYISAM перестаёт поддерживаться с новыми версиями mysql, а вы на него всё перевели.

Вы mysql то обновили?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
danforth
На сайте с 18.12.2015
Offline
153
#15
revered:
Как итог: теперь практически все страницы открываются быстро. До 0.2 сек.
Конечно хотелось бы ещё быстрее, т.к. Google Page Speed иногда ругается, что слишком долгий ответ от сервера.

Кешируйте веб-сервером, зачем вам постоянно лазить в базу за одними и теми же данными? А при добавлении новой организации чистите кеш. Скорость отдачи будет как у статики, собственно это и есть статика.

Junior Web Developer
R
На сайте с 03.08.2012
Offline
131
#16
danforth:
Кешируйте веб-сервером, зачем вам постоянно лазить в базу за одними и теми же данными? А при добавлении новой организации чистите кеш. Скорость отдачи будет как у статики, собственно это и есть статика.

На сайте более 20 000 000 страниц, исходя из этого на одну и ту же страницу пользователь будет попадать не так часто. А вот сбивать кеш придется достаточно часто, т.к. данные постоянно добавляться буду в базу.

Согласен, что кеш все равно ускорит. Но тем не менее, каждый новый заход пользователя (после сбивания кеша) будет все равно грузить базу, по этому и хотелось реализовать без кеширования на стороне ВЕБ сервера.

Dreammaker
На сайте с 20.04.2006
Offline
569
#17
revered:
+ осталась проблема с некоторыми категориями в городе Москва. Там при выборке id организаций не до 5000 записей, а около 50 000 записей, такие страницы грузятся 1-3 сек.

А что вы после запроса в скрипте делаете с этими 5000/50000 организаций? Если объясните, то возможно получится найти путь как перенести это в базу и тогда всё ещё быстрее заработает.

R
На сайте с 03.08.2012
Offline
131
#18

Все таки решил поставить memcache, чтобы ускорить работу. При нескольких запросах в секунду сервер начинает ложиться :(

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

$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");

Выдает

Could not connect

В ISP maneger включил memcache.

phpinfo();

Выдает: https://yadi.sk/i/fwXkSwiO3MzxPw

Подскажите, куда копать?

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#19

Помоему вы не хотите слышать нас.

Вы устроили тут себе твиттер. Читаете какие-то статьи, и сюда пишите какие у вас УГ результаты.

dma84
На сайте с 21.04.2009
Offline
168
#20
revered:
Все таки решил поставить memcache, чтобы ускорить работу.

Не, ну кэш-то, конечно, поможет!☝

123 4

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