2010-03-09 3 views
1

Я работаю в базе данных с MySQL 5.0 для проекта с открытым исходным кодом он используется для хранимых предложений в конкретных языках и их переводов на других языкахесть ли предел таблиц слияния с Mysql?

Я использовал, чтобы иметь большие таблицы «предложения» и «sentences_translations» (используйте, чтобы присоединиться к предложениям к предложениям), но у нас сейчас около миллиона записей, это начинает немного медленнее, более того, большая часть запросов выполняется с использованием «где lang =»

поэтому я решил для создания таблицы по языку sentences_LANGUAGECODE

и sentences_translation_LANGSOURCE_LANGTARG ET

и создавать объединения таблицы, как это sentences_ENG_OTHERS которые сливаются sentences_ENG_ARA sentences_ENG_DEU и т.д ... когда мы хотим иметь переводы на всех языках английского предложения sentences_OTHERS_ENG , когда мы хотим иметь только английские переводы некоторые предложения

Я создал сценарий для создания всех этих таблиц (они составляют около 31 языка, поэтому более 60 таблиц слияния), которые я тестировал, отлично работает запрос, который использует 160 мс только 30 :) , но я обнаружил, что все мои таблицы слияния после 15-го использования используют «NULL» как тип механизма хранения вместо MRG_MYISAM, а если удалить один, то я могу создать других, используя таблицу FLUSH между каждым созданием, также позвольте мне создать больше таблиц слияния

так это ограничение от mysql? мы можем переопределить его?

спасибо за ваши ответы

ответ

0

(благодаря Мартину, чтобы показать мне путь)

на Linux, вы должны изменить ваши /etc/security/limits.conf и линии, как этот

* hard nofile 4096 

На следующей перезагрузке будет хорошо Чтобы она непосредственно остановить сервер

ulimit -n 4096 (or more , as root) 

и перезапустить сервер непосредственно

я не знаю, как насчет окон еще

1

В этой теме с MySQL Merge форума хранения двигателя, оказалось, что многие тысячи таблиц могут быть включены в таблицу MERGE. У некоторых людей были проблемы с запуском файловых дескрипторов, но опять же это обычно встречается только после того, как несколько сотен таблиц объединены. Я полагаю, это зависит от того, какую ОС вы используете слишком - возможно, Windows имеет более низкие пороговые значения.

MySQL Forum for MERGE storage engine

Лично я бы избежать Merge двигатель, если вообще возможно. Я начал использовать его еще в 2002 году и был укушен многочисленными ошибками во многих версиях MySQL. У меня создается впечатление, что механизм слияния не является приоритетом для MySQL и, возможно, не очень хорошо протестирован. Разделение в 5.1 кажется более функциональным, но для вашего приложения я удивлен, что у вас проблемы с производительностью всего за миллион строк. Насколько эффективна ваша индексация?

+0

Я буду внимательно читать Я бегу MySQL 5.0 на Debian, так как это один при условии моего хозяина, у меня вопрос, как в производительности я следующее I нужны переводы и переводы переводов, которые еще не являются переводами, поэтому запрос немного велик, и прямой перевод действительно очень быстрый. Кроме того, сервер не очень мощный (проект с открытым исходным кодом: p) Я буду внимательно читать вашу ссылку – sysko

+0

Как насчет публикации «объяснения» вашего запроса? Это может просто потребовать немного настройки. – Martin

+0

http://pastebin.com/xbVVPTsW (для запроса) объясните, пожалуйста, следующее: http://pastebin.com/w4Pypwdq (оба слишком длинны для непосредственного вставки здесь) большое спасибо за ваше внимание – sysko