Нужна консультация по переезду с MySQL на ClickHouse
На проекте используется MySQL, в секунду ~500 инсертов и ~200 селектов.
Некоторые таблицы разрослись до >1 млрд записей, некоторые таблицы в результате неизвестно чего повредились и мускул стал несколько раз в день падать.
Собрав все пролемы в кучу и предположив, что нагрузка будет только расти - мы решили перейти на ClickHouse.
Переписали скрипт, перенесли данные из MySQL и запустили всё на на полную мощь. В итоге сайт начал тормозить, в логах кликхауса появляться ошибки что слишком много запросов идёт на запись (примерно так).
В MySQL у меня были такие же проблемы, когда диск не выдерживал такого объёма записей и всё начинало лагать. Решил это с помощью конфигов:
innodb_flush_method = O_DIRECT innodb_flush_log_at_trx_commit = 2
После изучения документации кликхауса я понял, что для решения этой проблемы нужно использовать движок Buffer.
Далее я выполнил такой запрос:
CREATE TABLE `buffer_log` AS `log` ENGINE = Buffer(`default`, `log`, 16, 10, 60, 1000, 10000, 10000000, 100000000);
Далее я все инсерты повесил на таблицу buffer_log, нагрузка на проц и диск упала, но появилась новая проблема.
SELECT запросы у меня идут с небуферизованной таблицы log, а там они соответственно появляются не сразу и появляется задержка около минуты. Меня это не устраивает, нужен полный realtime как был на MySQL.
Далее я попробовал чтение делать тоже из таблицы буфера, но сайт снова стал тормозить. Покопав документацию я увидел, что при записи в буфер блокируется вся таблица.
Как это исправить?
Мне нужно решить всего две проблемы:
1) Чтобы данные писались быстро
2) Чтобы данные читались быстро
Пишите мне в телеграм @rakovskiy28
-
1 день420 UAH
560 21 1 1 день420 UAHМожет стоит попробовать для начала ускорить саму запись в MySQL? Что вы слышали про HandlerSocket?
https://habr.com/ru/post/239637/
Немного о себе:
Знаю: PHP, MySQL, JavaScript, jQuery, Angular 2+, HTML5, CSS3, Linux, nginx
Использую: Smarty, Sphinx, mod_rewrite, memcache, собственная CMS
Работал с WordPress, PrestaShop, OpenCart, Zend Framework, phpBB3, IP.Board
Хороший опыт front-end: верстка, анимация и динамические сайты.
…
Доступен в онлайне с 12-00 до 23-00
Оплата по-проектно или почасовая ставка ($15/час)
Skype: iamleprik
E-mail: [email protected]
Телефон: +380674660520
-
Наверное, стоит начать с кэширования и оптимизации запросов.
-
Андрей Юрьевич Chegos Marketing
Можно более конкретно?
-
Актуальные фриланс-проекты в категории PHP
Натянуть готовую верстку на движок Simpla
5000 UAH
Необходимо натянуть готовую верстку на движок Simpla. Подключить весь необходимый функционал согласно макета и оптимизировать загрузку сайта согласно Google Page Speed - Пример макета - http://surl.li/uufz PHP, Веб-программирование |
Настроить магазин Wordpress/WooCommerceУстановить и настроить Wordpress (тема Phlox Pro) + WooCommerce Настроить перевод на украинский, внешний вид главной страницы, карточки товара и каталога товаров. Настроить процедуру оформления заказа. Добавить модули доставки Новая Почта, Укрпочта, оплаты (Эквайринг от моно),… PHP, Веб-программирование ∙ 5 ставок |
“Magento 2.4.6 добавления товара через атрибуты»Проблема: На сайте присутствует множество продуктов, которые могут продаваться вместе с другими продуктами. Нужно добалять продукты через аттрибут в конфигурационном продукте. Для примера: Компьютерная мышка доступна в разных цветах, и к ней можно приобрести коврик для мыши… PHP, Веб-программирование ∙ 3 ставки |
Разработать скрипт под WordPress CMS + Google maps API + MySQLНам нужен код для веб-сайта на WordPress. Текущий (демо) веб-сайт https://e-ztrans.com/ основан на некоторой самодельной CMS. Мы пытаемся переопределить и сделать его более надежным. Я предоставлю доступ к административной панели текущего веб-сайта, а также к исходному коду… PHP, Веб-программирование ∙ 3 ставки |
Добавить раздел на сайт
3000 UAH
1. Добавить раздел https://www.vitajuwel.us/sana на сайт https://vitajuwel.com.ua/ 2. Поправить центральный слайдер. Сайт на Laravel. Значение по пейджспид должно не уменьшиться. PHP ∙ 5 ставок |