SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 18.12.2008 12:04:51

elgato
Участник
Зарегистрирован: 21.11.2008
Сообщений: 11

Настройка базы

Добрый день smile
Есть задача, обновлять прайсы, все прайсовые строки находятся в одной таблице, обновляются часто, но не так часто как хотелось бы, сейчас стоит master->slave replication, на мастере апдейты, на слейве селекты для сайта, и там и там myisam. Таблица с каждым днем всё больше растет, скоро должно быть от 5 млн записей в ней.. На мастере 90% - это апдейты, 10% - инсерты (селектов нету вообще). В идеале нужно быстро выполнять селекты на слейвах, а на мастере делать апдейты/инсерты постоянно, но как можно быстрее, чтоб прогонять все записи по 3-4 раза в сутки на предмет изменений, сейчас только 1 раз прогоняется, но не постоянно обновляются данные, а по графику и в рабочее время..
Какую бы схему выбрать посоветовать кто может? Я думаю над иннодб на мастере, myisam на слейвах, и disable keys на мастере, но решил что лучше спросить тех кто может сталкивался с такими задачами массовых апдейтов smile
Думал еще насчет таблиц в памяти, но пугает то что если на хостинге сервер вырубится то после перезагрузки ничего не останется.. как бы вы решали задачу очень массовых апдейтов/инсертов? может и не через mysql, и не через реляционную бд держать все данные, а туда только сливать, не знаю, идей нету sad
Спасибо

Неактивен

 

#2 18.12.2008 12:43:33

elgato
Участник
Зарегистрирован: 21.11.2008
Сообщений: 11

Re: Настройка базы

еще одно уточнение, под мастер есть 2 сервера: на одной рейд но ДДР, на другом 10к диск но ДДР2..

Неактивен

 

#3 19.12.2008 13:58:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Настройка базы

Честно говоря, не понимаю, что Вас пугает - мастер не справляется с нагрузкой? Или что?

Ключи могут быть на мастере и слейвах разные, но это тяжело поддерживать, т.к. любое
изменение ключей на мастере доедет и до слейвов, если специально об этом не позаботиться smile

2 сервера под мастер - излишне, мастер может быть запущен только на одном из них smile (ну или
на 3+, если рассматривать кластер).

InnoDB на мастере будет быстрее только, если на мастер пишет одновременно большое
количество потоков. В случае однопоточного импорта - MyISAM не медленнее.

Неактивен

 

#4 19.12.2008 14:25:21

elgato
Участник
Зарегистрирован: 21.11.2008
Сообщений: 11

Re: Настройка базы

paulus написал:

Честно говоря, не понимаю, что Вас пугает - мастер не справляется с нагрузкой? Или что?

Ключи могут быть на мастере и слейвах разные, но это тяжело поддерживать, т.к. любое
изменение ключей на мастере доедет и до слейвов, если специально об этом не позаботиться smile

2 сервера под мастер - излишне, мастер может быть запущен только на одном из них smile (ну или
на 3+, если рассматривать кластер).

InnoDB на мастере будет быстрее только, если на мастер пишет одновременно большое
количество потоков. В случае однопоточного импорта - MyISAM не медленнее.

ненене, не 2 сервера под мастер, просто 2 сервера, на одном рейд и ддр, на другом один винт и ддр2, просто надо выбрать какой из них взять под мастер, слейвы с селектами справляются, а мастер делает апдейты/инсерты и мне хочется сделать максимально быстрые апдейты/инсерты, вот с ключами как поступить чтоб выключить только на мастере их и слейвы не подхватили disable? или лучше вообще на мастере удалять все ключи из таблицы, а оставлять только на слейвах?
насчет паралельных потоков - иногда в 2-3, иногда в 5 паралельных потоков идут апдейты, и думаю может memory table поставить на мастере, на сервере с ддр2 и в случае падения сливать то что если на слейве на текущий момент? будет быстрее?

Неактивен

 

#5 19.12.2008 14:45:33

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Настройка базы

Преждевременная оптимизация - корень зла (C) smile

Определитесь для себя, что Вам нужно - устойчивое хранилище или быстрое хранилище.
Если Вы готовы терять несколько часов при потере данных в MEMORY-таблицах, то рейд Вам
тогда не нужен, конечно smile С другой стороны, если Вы не хотите заниматься бесполезной
работой, то рейд полезен.

Попробуйте сначала сделать нужную Вам нагрузку и убедитесь, что мастер не справляется.
Если он не будет справляться - уберите на нем все ключи, кроме уникальных (чтобы сохранить
целостность), оставив их на слейвах. Добавьте памяти в буферы индексов и попробуйте еще раз.

Неактивен

 

#6 19.12.2008 15:27:57

elgato
Участник
Зарегистрирован: 21.11.2008
Сообщений: 11

Re: Настройка базы

а как убрать на мастере чтоб не убрались на слейвах? как-то вообще можно сделать чтоб alter не реплицировались на слейвы?

Неактивен

 

#7 19.12.2008 16:32:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Настройка базы

Ну, например, можете воспользоваться переменной sql_log_bin.

Неактивен

 

Board footer

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