Добрый день. Кто подскажет какая ситуация сейчас с wmr после первого августа для не резидентов? Появились какие то ограничения, лимиты или что то другое , а то не могу найти новую инфу от вебмани.
LEOnidUKG: В общем плане работы т.е. комплексной это не так. Долго объяснять. Mysql отказывается от myisam не просто так.
Если на сервере достаточно памяти, то да выставлять 5 ГБ
Я то попробую, но это не так быстро сделать :)
---------- Добавлено 16.06.2018 в 14:33 ----------
И мой знакомый рассказывал, что у него на сайте была база innoDB, и начало кончатся место. Оказывается в табличке было пару записей, а занимала пару гиг. Он ее перевел в MyISAM и она сразу в несколько сот раз уменьшилась.
LEOnidUKG: Ничего не давал т.к. запросы в кэше были. Вы кэш очищали, отключали перед тестами?
нет, но кеш долго не держится, так как страница второй раз грузится быстрее в разы (это с кэша), а проходит время и снова медленно.
LEOnidUKG:
Если вы делаете выборку по каким-то полям, у вас обязательно должны быть на них индексы.
Да. Это есть уже.
LEOnidUKG: Это если вы блокировку сделали только на запись. Вы же сами пишете, что блокируете таблицу полностью.
Если делаю запись, блокирую таблицу на WRITE, а иначе READ
LEOnidUKG:
Вы там нахимичили себе на голову всякого, а теперь спрашиваете, что с этим делать. Делать всё по нормальному надо, и блокировка таблицы нужна в ОЧЕНЬ крайних случаях, ну просто в ОЧЕНЬ.
Это да, но вопрос был про игнор запроса, если он долго идет.
Хотя очень хорошо, что Вы все даете советы не только на конкретный вопрос, а ищите пути решения глобально, не ожидал.
И, если честно, то изначально все было без индексов и блокировок, и усе было плохо, но теперь лишь некоторые ньюансы остались.
LEOnidUKG: Почему не innodb, и там блокировка по строкам идёт автоматическая. Также можно задать максимальное количество памяти для таблиц и всё будет в памяти работать быстро и легко.
Также сброс кэша можно уменьшить через настройки.
Не понял эту фразу. Вы проверяли работу всех индексов?
Также медленно у вас работает чтение или запись без блокировки?
innodb ставил, но не заметил каких либо изменений.
Я ставил индексы во время SELECT и проверял скорость работы, если индекс ничего не давал, я его убирал.
Ну например закидывается в базу по 20 URL сто тысяч фраз, плюс вычисляются их домены и количество, для дальнейшей вставки в базу доменов. Это если кратко.
И, если не ошибаюсь, эта процедура длится около 5 минут.
Оптимизайка: на выбор:
SET GLOBAL MAX_EXECUTION_TIME=100;
SET SESSION MAX_EXECUTION_TIME=100;
SELECT /*+ MAX_EXECUTION_TIME(100) */ COUNT(*) FROM table_n
А это установит лимит только на эту страницу, или брать лишь последний запрос?
Сделал запрос
SELECT /*+ MAX_EXECUTION_TIME(100) */ COUNT(*) FROM table_n
в PhpMyadmin, он исправил на
SELECT COUNT(*) FROM table_n
Но он использовал директиву MAX_EXECUTION_TIME(100)?
И я так понял, это в милисекундах?
_SP_: Где-то что-то через жопу.
Согласен, можно считать кроном и записывать в отдельную таблицу.
Sitealert: Это что ж за скрипт такой, который регулярно подвешивает базу на несколько минут?
С помощью PHP/Mysql делаются некоторые вычисления, т.е. PHP не используется для Web, а как инструмент. Некоторые операции длятся часами, и что бы делались быстрее запросы к базе используется блокировка.
Согласен, что можно использовать си+ или другой язык, но просто PHP я знаю хорошо, а вот других языков не знаю.
Добрый день. Кто подскажет какая ситуация сейчас с wmr после первого августа для не резидентов? Появились какие то ограничения, лимиты или что то другое , а то не могу найти новую инфу от вебмани.
В общем плане работы т.е. комплексной это не так. Долго объяснять. Mysql отказывается от myisam не просто так.
Если на сервере достаточно памяти, то да выставлять 5 ГБ
Я то попробую, но это не так быстро сделать :)
---------- Добавлено 16.06.2018 в 14:33 ----------
И мой знакомый рассказывал, что у него на сайте была база innoDB, и начало кончатся место. Оказывается в табличке было пару записей, а занимала пару гиг. Он ее перевел в MyISAM и она сразу в несколько сот раз уменьшилась.
Переведите всё в innodb, выставите innodb_buffer_pool_size в размер чуть больше ваших таблиц, если они будут пополнятся.
На данный момент самая большая таблица с ссылками занимает 4,3гб, так буфер ставить в 5гб?
---------- Добавлено 16.06.2018 в 14:25 ----------
Переведите всё в innodb
Я было раньше хотел, но
InnoDB также сложнее восстанавливать после сбоя в работе сервера чем MyISAM.
Операция Insert работает быстрее в MyISAM.
Если преобладают операции чтения (SELECT) работает быстрее в MyISAM.
И я тестировал операцию select на обоих типах. MyISAM была быстрее, что важно.
Возможно не оптимально настроен InnoDB
Ничего не давал т.к. запросы в кэше были. Вы кэш очищали, отключали перед тестами?
нет, но кеш долго не держится, так как страница второй раз грузится быстрее в разы (это с кэша), а проходит время и снова медленно.
Если вы делаете выборку по каким-то полям, у вас обязательно должны быть на них индексы.
Да. Это есть уже.
Это если вы блокировку сделали только на запись. Вы же сами пишете, что блокируете таблицу полностью.
Если делаю запись, блокирую таблицу на WRITE, а иначе READ
Вы там нахимичили себе на голову всякого, а теперь спрашиваете, что с этим делать. Делать всё по нормальному надо, и блокировка таблицы нужна в ОЧЕНЬ крайних случаях, ну просто в ОЧЕНЬ.
Это да, но вопрос был про игнор запроса, если он долго идет.
Хотя очень хорошо, что Вы все даете советы не только на конкретный вопрос, а ищите пути решения глобально, не ожидал.
И, если честно, то изначально все было без индексов и блокировок, и усе было плохо, но теперь лишь некоторые ньюансы остались.
Почему не innodb, и там блокировка по строкам идёт автоматическая. Также можно задать максимальное количество памяти для таблиц и всё будет в памяти работать быстро и легко.
Также сброс кэша можно уменьшить через настройки.
Не понял эту фразу. Вы проверяли работу всех индексов?
Также медленно у вас работает чтение или запись без блокировки?
innodb ставил, но не заметил каких либо изменений.
Я ставил индексы во время SELECT и проверял скорость работы, если индекс ничего не давал, я его убирал.
На SELECT по моему блокировка не влияла
эм... у вас какой тип базы данных? Индексы корректно проставлены?
У вас какие основные операции записи или чтение?
Какая версия mysql?
MyISAM.
Без индексов select работает очень медленно, на это и приоритет.
Версия сервера: 5.7.22-0ubuntu0.16.04.1 - (Ubuntu)
Объясните нам, зачем вы блокируете таблицу?
Читал в интернете, что это позволяет ускорить запись в БД, так как база в это время не используется. И скрипт действительно быстрее работал.
дело не в языке, а в алгоритме☝
Ну например закидывается в базу по 20 URL сто тысяч фраз, плюс вычисляются их домены и количество, для дальнейшей вставки в базу доменов. Это если кратко.
И, если не ошибаюсь, эта процедура длится около 5 минут.
на выбор:
SET GLOBAL MAX_EXECUTION_TIME=100;
SET SESSION MAX_EXECUTION_TIME=100;
SELECT /*+ MAX_EXECUTION_TIME(100) */ COUNT(*) FROM table_n
А это установит лимит только на эту страницу, или брать лишь последний запрос?
Сделал запрос
SELECT /*+ MAX_EXECUTION_TIME(100) */ COUNT(*) FROM table_n
в PhpMyadmin, он исправил на
SELECT COUNT(*) FROM table_n
Но он использовал директиву MAX_EXECUTION_TIME(100)?
И я так понял, это в милисекундах?
Где-то что-то через жопу.
Согласен, можно считать кроном и записывать в отдельную таблицу.
Это что ж за скрипт такой, который регулярно подвешивает базу на несколько минут?
С помощью PHP/Mysql делаются некоторые вычисления, т.е. PHP не используется для Web, а как инструмент. Некоторые операции длятся часами, и что бы делались быстрее запросы к базе используется блокировка.
Согласен, что можно использовать си+ или другой язык, но просто PHP я знаю хорошо, а вот других языков не знаю.
Хорошо, а в каком случае этот скрипт может запуститься?
Его надо чем-то открыть, или просто запустить с браузера, зная где будет прописана эта строчка?