Size: a a a

2018 June 06

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
но только в той таблице у меня получится 15 млн * 8 параметров СТРОК, и помоему это еще более пиздец
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
значит ли это что раскидывать нужно на несколько компьютеров или вообще отказываться от mysql?
или можно что-то вытворить с этой таблицей чтобы летало? спасибо
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
основные потери времени идут конечно на полнотекстовый поиск, но даже по полному названию из поля VARCHAR выборка занимает 1-2 секунды вместо 0.05 у эластика
источник

NI

Nickolay Ihalainen in ru_mysql
Какие индексы? Какой размер буферпула, таблицы?
источник

NI

Nickolay Ihalainen in ru_mysql
ну и какие запросы, какой у них EXPLAIN
источник

NI

Nickolay Ihalainen in ru_mysql
разбивать таблицы можно автоматически с помощью https://dev.mysql.com/doc/refman/8.0/en/partitioning.html только надо смотреть зачем эта разбивка вам нужна. Просто разбить данные на несколько таблиц не поможет, если ко всем партициям равномерный доступ.
источник

NI

Nickolay Ihalainen in ru_mysql
Если формат строк dynamic https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format-dynamic.html, то текстовый столбец хранится в отдельных страницах и поиск по другим полям даже без индекса быстреею
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
поля
источник

NI

Nickolay Ihalainen in ru_mysql
не так важно сколько в табличке строк, если мы достаём одну строчку, как размер таблички: помещается ли табличка в буферпул или нет
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
индексы
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
запрос дичайше сложный, динамически формируется FULLTEXT, иногда по требованию добавляется number_clear или id при некоторых условиях (попытка сделать умный поиск на сайте)
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
таблица весит гига 2, а индексы что-то около 4-5
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
видимо нахерачил я полной чуши а как правильно не понимаю
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
максимальная выборка на один запрос - 80 строк (пагинация 4 страницы по 20)
в пагинации использую last_id, т.е. вторая страница отработает по кешу первой выборки, OFFSET не используется
источник

NI

Nickolay Ihalainen in ru_mysql
запрос всегда конкретный, надо или посмотреть в sys.statement_analysis или через slow log и pt-query-digest найти самые медленные и уже смотреть для них explain.  Ну и проверить что innodb_buffer_pool_size большой (если память позволяет, то должен вмещать всю базу).
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
пул 24 гига, оперативка 64 на сервере
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
по поводу эксплаин сейчас запущу какой-нибудь посложнее, секундочку
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
пс. я не понимаю как читать (понимать) результаты эксплейна буду благодарен если поможете разобраться
источник

NI

Nickolay Ihalainen in ru_mysql
источник

GB

Grzegorz `gzhegow` Brzęczyszczykiewicz in ru_mysql
та я читал, просто ничего не понял в этой статье. вроде кажется все понятно но без опыта эти цифры для меня как надпись на заборе
источник