MYSQL на 10 миллионов строк, 3 ГБ объема отвечает на запрос по 2-3 секунды

1 234
200Online
На сайте с 22.01.2017
Offline
86
#21
более 10 миллионов строк, размер дампа 3 ГБ. Вертится на 6 ядерном XEON, 128 ГБ ОЗУ

А сколько у вас запросов в секунду?

Можно вынести базу на отдельный VPS. Используйте хорошего провайдера.

Для 10М строк не представляю зачем может понадобиться больше 4Gb RAM.

У меня на 2Gb RAM отлично работают около 40М.

Установите на VPS самый новый Ubuntu Server и руками(!), без всяких панелей, свежий Mysql.

Разверните дамп базы.

Удалите лишние индексы и не пишите в конфиг лишние настройки.

Поставьте для начала только innodb_buffer_pool_size=3G

Проведите тесты скорости.

Если все будет ОК, либо:

- настройте репликацию и читайте со второго сервера в режиме slave, либо

- полностью переключайте коннект к базе на него.

Весь поиск нужно по возможности вынести в Sphinx или Elastic.

У вас есть возможность показать схему основной таблицы, со всеми индексами?

Я про это:


CREATE TABLE `post` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(250) NOT NULL DEFAULT '',
`keywords` varchar(2048) NOT NULL,
`slug` varchar(250) NOT NULL DEFAULT '',
`quote` varchar(2048) NOT NULL DEFAULT '',
`content` text NOT NULL,
`time_int` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `slug` (`slug`),
KEY `time_int` (`time_int`)
) ENGINE=InnoDB AUTO_INCREMENT=11021 DEFAULT CHARSET=utf8mb4;

Возможно, нужно денормализовать или наоборот нормализовать таблицы.

tmatm
На сайте с 22.04.2006
Offline
210
#22

Очевидно, что нужно индексы правильные прописывать, т.к. если запрос выполняется несколько секунд, то индексы скорее всего не используются или используются частично.

Настройками сервера или более мощным железом такое не победить. Только переделывать таблицы.

Optimizator.Ru ( https://optimizator.ru/ ) — регистрация и продление доменов в RU-CENTER и REG.RU: RU, РФ от 123 р.; MSK.RU, SPB.RU и др. 168 р. + REG.RU ( https://reg.optimizator.ru/ ). Освобождающиеся домены от 150 р. ( https://optimizator.ru/backorder/ )
200Online
На сайте с 22.01.2017
Offline
86
#23
tmatm:
Настройками сервера или более мощным железом такое не победить. Только переделывать таблицы.

С этим согласен. Кроме редких случаев, когда настройки ну очень уж кривые :kozak:

И править базу лучше не на production сервере.

Поэтому дроплет на DO и можно начинать эксперименты.

TF-Studio
На сайте с 17.08.2010
Offline
334
#24

хороший, опытный разработчик окупится на долгой дистанции.

такой сервер, с виду избыточен. тем более вечные зависания

БД у вас маленькая

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
kxk
На сайте с 30.01.2005
Offline
970
kxk
#25

Сколько вредных советов:)

Запихните проблемные данные SphinxsSearch или ElasticSearch и всё небудет проблем:)

Ваш DEVOPS
Mik Foxi
На сайте с 02.03.2011
Offline
1119
#26

kxk, обрати внимание на исходные данные, база всего 3 гб, всего 10 млн строк. Это вообще ниочем, и запросы по id должны в миллионных количествах выполняться моментом даже на вдс с гигом оперативки, на DO такой вдс стоит 10$

И не нужно тут никаких highload решений.

Проблема тут или с совсем убитых дисках или в адово кривой архитектуре базы без индексов.

Универсальный антибот, антиспам, веб файрвол, защита от накрутки поведенческих № 1 в рунете: https://antibot.cloud/
kxk
На сайте с 30.01.2005
Offline
970
kxk
#27

foxi, Зачем спорить проще сделать и не иметь проблем:)

L
На сайте с 10.02.2015
Offline
235
#28

А тем временем я чет не наблюдаю схемы БД, тупящих запросов и их explain. :)

Отписавшимся проблема интересней, чем ТС. :)

Может у ТС-а сервер БД за океаном или на Луне? :)

hosting_manager
На сайте с 26.03.2010
Offline
294
#29

Вопрос можно решить элементарно, взять VPS c SSD под такую БД, развернуть БД там, подключить с такого тестового сервера и посмотреть, повлияет ли это на скорость.

Если это все на HDD, удивительно, что это занимает только 3 секунды.

ua-hosting.company: серверы в NL/US со скидкой 30% нашим читателям: E5-2650v4/10GB DDR4/240GB SSD/1 Gbps - от $20 ()
H
На сайте с 21.08.2004
Offline
122
#30
hosting_manager:
Вопрос можно решить элементарно, взять VPS c SSD под такую БД, развернуть БД там, подключить с такого тестового сервера и посмотреть, повлияет ли это на скорость.

Если это все на HDD, удивительно, что это занимает только 3 секунды.

Ага, а раньше, когда не было SSD, запросы выполнялись по пол дня:)

Как можно судить о производительности БД (не видя запрос) только по описанию железа?

ТС скорее всего либо забил на вопрос либо уже решил:)

Есть что-то, что мы не знаем, но узнать это мы не можем.
1 234

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