SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.05.2013 15:50:15

1nSane
Участник
Зарегистрирован: 05.05.2013
Сообщений: 2

переход на InnoDB или оптимизация?

День Добрый!
Имеем таблицы:

менеджеры: ИД, и прочая информация (10-100 шт)
клиенты: ИД_менеджера, ИД_юзера (10к-100к шт)
юзеры: ИД_юзера, ФИО, город, телефон и еще около 30 полей, примерно на десятке из них ключи (100-200 млн шт) - около 50гб сейчас + 25гб индексы

Используется Windows сервер (временно), MyISAM. MySQL перешли с 5.1 на 5.5, отсюда вопрос про InnoDB.

Проблема 1: Иногда сервер падает в БСОД, при этом крашится таблица с юзерами, на репэйр уходит несколько суток (настройками пробовал обыграть, особо не дает результата, индексы чинит очень долго).
Проблема 2: Работу многопоточную особо не могу настроить, таблица юзеров постоянно пополняется, блокируется вся таблица. К тому же, надо удалять и обновлять текущие данные. Постоянно новые запросы "ждут" выполнения старых.

Во время обновления до МуСкула 5.5 данные-то быстро импортировались, а вот индексы перестраивались почти неделю, причем объем файла рос очень неравномерно. Делать optimize table даже не хочется, там явно в днях можно будет считать время выполнения.

Не подскажете в какую сторону копать? Фулл-текст полей пока не предвидится, так что поиск по ним не нужен.

Спасибо за советы.

Неактивен

 

#2 05.05.2013 17:09:12

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: переход на InnoDB или оптимизация?

Разбейте юзеров на 26 таблиц по первой букве имени (это я образно, на самом деле нужно разбивать по остатку от деления хэш-функции от имени на 26).

Вообще говоря переход на InnoDB большинство проблем решит. Не забудьте организовать регулярный бэкап, так как таблицы InnoDB не всегда восстанавливаются. Бэкап можно делать без простоя сервера, например, с помощью Percona innobackupex.

Неактивен

 

#3 05.05.2013 17:20:54

1nSane
Участник
Зарегистрирован: 05.05.2013
Сообщений: 2

Re: переход на InnoDB или оптимизация?

У меня для юзеров главное поле ИД. А ФИО может быть как на русском, так и на английском языке. Итого уже 59 таблиц (правда вычесть несколько неиспользуемых в русском языке необходимо)

Разбивать таблицы мне не очень хочется, так как слабо себе представляю как будут строиться запросы к 100 (к примеру) идентичным таблицам, с учетом выборки.

Например: найти 1000 человек, мужского пола, старше 18 лет, из города Екатеринбург, с телефоном, с заработком от 20т.р., которые не являются нашими клиентами и им еще не звонили до этого.

Вот примерно такие запросы приходится выполнять, поэтому индексов много. А уж если еще и из 100 таблиц придется делать...

З.Ы. Пока пошел гуглить на тему Перконы wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson