1

ошибка regexp на мультибайтовых кодировках

сервер 5.7.33-0 ubuntu 0.16.04.1

SHOW FULL FIELDS FROM `test`
Field 	Type 	Collation 	Null 	Key 	Default 	Extra 	Privileges 	Comment 
str	varchar(100)	utf8_general_ci	NO	 	NULL	 	select,insert,update,references

INSERT INTO test VALUES ('А РОЗА УПАЛА НА ЛАПУ АЗОРА')

select * from test where str like '%роза%' - строка найдена
select * from test where str regexp 'роза' - строка не найдена

Проверил на нескольких кодировках, все case-insensitive, конечно.
На однобайтовых поиск правильный, ну многобайтовых LIKE работает, а REGEXP - нет.

То же самое на сервере MariaDB 10.1.28 под windows работает во всех вариантах правильно.

Проблема, как я понял, старая и общеизвестная.
Кто-либо нашел решение?
Хотя бы известно кто виноват-то, замена мускуля на марию под убунтой проблему решит или нет?

Поиск по ключевым словам со стеммером

а занимался ли кто-то этим всерьез?

т.е. я разбираю текст стеммером и добавляю новые корни в таблицу.
word, wordid
и обновляю кросс-таблицу связей
wordid, documid

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

в общем сейчас в справочнике слов порядка 8М записей.
сколько записей в кросс-таблице я не знаю - count сделаю только в выходные, сейчас это положит базу.
индекс wordid,documid весит порядка 17ГБ.


почистить справочник слов возможно, но не в разы. а удаление закаазов вряд ли серьезно уменьшит кросс-таблицу.

поиск пока работает терпимо (в справочнике слов есть doccnt и я сортирую джойны по нему), за исключением вариантов, когда люди набирают "клиент кредит ООО" и по каждому слову миллионы пересечений
(это отдельный вопрос как победить)

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

15–17 декабря серия лекций «Тюнинг и масштабирование проекта на MySQL»

Приглашаем на серию лекций по MySQL 15-16-17 декабря в 19:00. Расскажем, что именно настроить, чтобы база не тормозила и не падала, а данные не терялись. Поможем найти медленные запросы и сделать их быстрыми. Обсудим ваши кейсы.

Ведущий Владимир Федорков, специалист по настройке и эксплуатации СУБД MySQL, эксперт в сфере производительности MySQL.

Collapse )
1

неожиданно медленно

Банальность, есть пара таблиц - группы и привязанные к ним элементы, примерно 2.5К групп, 3.3М элементов. Часть групп пустая.
Collapse )

$%^, ПОЧЕМУ?! Моя фантазия пасует.
Сортировка должна выполняться на полностью сформированной выборке.
Сортировка 2к5 строк не занимает минуту. Ни при каких раскладах.

UPD
Таки что скажет купечество? Ни у кого нет соображений?
alone
  • simsun

Ускорить OPTIMIZE TABLE

Здравствуйте!

MySQL 5.7.25, innodb, Linux

При запуске OPTIMIZE TABLE создаёт временный файл в той же директории где лежит таблица. А для скорости хочется что-бы временный файл можно было создать на другом диске.
Переменные tmpdir, innodb_tmpdir, именно на OPTIMIZE TABLE не влияют.
Чисто для опыта попробовал включить путь в префикс временного файла
#define TEMP_FILE_PREFIX_INNODB "#sql-ib"
Но чуда не произошло, т.к. созданный файл потом переименовывается в место старого, а rename (); не умеет с другой fs.

Как бы такое правильно сделать?

Встреча Moscow MySQL User Group 11 июля в офисе Mail.Ru Group

11 июля в 18:00 в офисе компании Mail.Ru состоится очередная встреча Moscow MySQL User Group. Специальный гость встречи - Пётр Зайцев (CEO, Percona). Пётр сделает два доклада и ответит на вопросы участников встречи. Вход свободный. Регистрация здесь: https://www.meetup.com/moscowmysql/events/240684527/

Программа встречи

1. Обеспечение высокой доступности (HA) СУБД MySQL.

2. MySQL в облаке: миграция, лучшие практики, высокая доступность и масштабируемость.

3. Ответы на вопросы аудитории.

Секция MySQL на PG Day’17 Russia (Санкт-Петербург)

В рамках PG Day’17 Russia состоится полноценный поток докладов и мастер-классов, посвященный MySQL и другим открытым базам данных: https://pgday.ru/ru/2017/papers­

Ключевым событием для специалистов, занимающихся эксплуатацией MySQL, станут мастер-классы от ведущих экспертов компании Percona, Петра Зайцева и Светы Смирновой.

Петр Зайцев является основателем и CEO Percona, обладает более чем 15-летним стажем работы с MySQL и поддержки СУБД для крупнейших представителей бизнеса. В рамках PG Day'17 Петр представит учебный курс, посвященный архитектуре и оптимизации производительности InnoDB. InnoDB — наиболее часто используемая подсистема хранения для MySQL и Percona Server, на которую направлены основные усилия разработки команд MySQL и Percona. Петр расскажет, как использовать InnoDB, чтобы добиться максимальной производительности вашего приложения, и предложит конкретные рекомендации относительно конфигурации сервера, схемы базы данных, архитектуры приложения и выбора оборудования.


Света Смирнова обладает 10-летней экспертизой технической поддержки MySQL, является автором книги MySQL Troubleshooting и мировым экспертом по архитектуре и оптимизации производительности этой СУБД. На PG Day'17 участников ждет интенсивный 8-часовой учебный курс, посвященный отладке производительности MySQL. В рамках мастер-класса Света покажет, на основе личного опыта работы в технической поддержке, простые в использовании методы, позволяющие определить и устранить причины нежелательного поведения MySQL. Вы узнаете, какие инструменты и в каком порядке удобно использовать, с чего начать и как углубиться в проблему, научитесь безопасно тестировать свой сервер СУБД.

Вас также ждет множество интересных докладов от специалистов компаний MongoDB, Percona, МТС, Elastic, КРОК, Яндекс, Mail.Ru Group, Epam, Data Egret и др. Регистрируйтесь: https://pgday.ru/ru/2017/request/registration
v muzee

Почему запрос не использует cache?

Есть MySQL 5.7.16 на Убунте, который используется как бэкенд для Wordpress.
Куча криво написанных запросов, но после того, как я активизировал cache, большинство запросов выполняется из cache.
Но один почему-то cache не использует.
Заранее спасибо за помощь!

Collapse )
Sphinx
  • m_ike

Кто это локально ломится под рутом без пароля?

Каждые пять минут в логах (/var/log/mysqld.log) появляется такое:

2016-09-25T22:48:10.512240Z 18873775 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2016-09-25T22:53:00.526894Z 18874007 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2016-09-25T22:58:01.353671Z 18874265 [Note] Access denied for user 'root'@'localhost' (using password: NO)

Грешил на что-то вебовское или на cron job, поэтому временно убил обоих демонов:
systemctl stop httpd
systemctl stop crond
После этого подождал пять минут, и, как ни в чем ни бывало, появилось очередное аксесдинайд.

Что это такое и как прекратить? Операционка CentOS 7.1, сервер mysql 5.7. Спасибо!

P.S. Оказалось, это был webmin. Вопрос снимается.