Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Файлы или База при огромной мультиязычности / 17 сообщений из 17, страница 1 из 1
17.06.2016, 14:54
    #39257882
DonDiego
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
Здравствуйте!

Заканчиваю проект, задался сегодня ночью вопросом решил спросить у знающих совета.
Помогите, кто знает.

У меня 28 языков на проекте и скажем так 30 направлений. По каждому языку на каждое направление я сделал свой файл содержащий массив перевода. Так как проект огромен, файлы эти не маленькие. На одно направление на один язык самый большой 500кб.

Вот лежу и думаю сегодня ночью, а не му..к ли я... Файлы а не базу стал делать именно из-за огромного количества и для снижения нагрузки. но так как вышли просто огромные на мой взгляд файлы требующие подключения хоть и по одному но на каждую страниц, то вот задумался что быстрее и менее затратно для серверов из этих двух вариантов:

1. Так как описал выше
2. Или в таблицу каждого направления к каждому юниту добавить по 28 столбцов. База получится огромная, но если при запросе брать только данные юнита + 1 столбец из 28 может это лучше чем инклудить 500кб при каждом запросе.

Спасибо
...
Рейтинг: 0 / 0
17.06.2016, 15:18
    #39257920
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
Типа
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE translations (
Project INT,
Direction INT,
TermID INT,
Term VARCHAR(xx),
PRIMARY KEY (Project,Direction,TermID)
);
...
Рейтинг: 0 / 0
17.06.2016, 15:28
    #39257930
DonDiego
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
AkinaТипа
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE translations (
Project INT,
Direction INT,
TermID INT,
Term VARCHAR(xx),
PRIMARY KEY (Project,Direction,TermID)
);



Спасибо за ответ, но как создать я знаю )))
вопрос что быстрее и менее затратно для сервера.
То что Вы предлагаете даже хуже моего второго варианта.
Ибо запросов будет при этом варианте тьмы. порядка 45000 позиций умножить на 28. и это минимум
...
Рейтинг: 0 / 0
17.06.2016, 16:49
    #39258014
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
DonDiegoзапросов будет при этом варианте тьмы. порядка 45000 позиций умножить на 28. и это минимумНу, во-первых, я верю в кэш запросов.
Во-вторых, кто тебя заставляет волочь из базы ВСЕ записи? Как я понимаю, в каждый момент времени используется только одна пара (проект, направление) - вот для этой пары и получай свои строки.
В третьих, приложение-то какое? десктоп/консоль, или веб-морда? в первом случае никто не мешает на старте получить, сложить в массив или коллекцию, и использовать локально. Опять же подкачивать можно и порциями - только то, что нужно, и на текущий момент отсутствует в локальных данных.
В четвёртых, в одном запросе можно получать сразу несколько записей - причём как в варианте списка в условии отбора, так и в варианте мультизапроса.

Ну и вообще, мог бы чего рассказать о своей системе. А то, знаешь, давать советы по форме сбруи для сфероконя несколько затруднительно.
...
Рейтинг: 0 / 0
17.06.2016, 19:58
    #39258117
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
[quot DonDiego]

Вот лежу и думаю сегодня ночью, а не му..к ли я...


ну типа того. но ты не безнадежен, раз задумываешься.



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

уверен, это немного.



2. Или в таблицу каждого направления к каждому юниту добавить по 28 столбцов.

28 СТРОК, а не столбцов.

База получится огромная, но если при запросе брать только данные юнита + 1 столбец из 28 может это лучше чем инклудить 500кб при каждом запросе.

посчитай, напиши.
уверен, будет мало.
...
Рейтинг: 0 / 0
17.06.2016, 19:59
    #39258118
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
DonDiegoAkinaТипа
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE translations (
Project INT,
Direction INT,
TermID INT,
Term VARCHAR(xx),
PRIMARY KEY (Project,Direction,TermID)
);



Спасибо за ответ, но как создать я знаю )))
вопрос что быстрее и менее затратно для сервера.
То что Вы предлагаете даже хуже моего второго варианта.
Ибо запросов будет при этом варианте тьмы. порядка 45000 позиций умножить на 28. и это минимум

запроса хватит и одного.
...
Рейтинг: 0 / 0
17.06.2016, 20:14
    #39258119
DonDiego
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
[quot MasterZiv]DonDiego
Вот лежу и думаю сегодня ночью, а не му..к ли я...


ну типа того. но ты не безнадежен, раз задумываешься.


- спасибо стараюсь


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

уверен, это немного.



2. Или в таблицу каждого направления к каждому юниту добавить по 28 столбцов.

28 СТРОК, а не столбцов.

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

База получится огромная, но если при запросе брать только данные юнита + 1 столбец из 28 может это лучше чем инклудить 500кб при каждом запросе.

посчитай, напиши.
уверен, будет мало.
...
Рейтинг: 0 / 0
17.06.2016, 20:19
    #39258122
DonDiego
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
как это строк... строк в одной таблице к примеру самой большой 37 тысяч строк. а я говорю именно про столбцы по 28 дополнительных ячеек на каждую строку

к примеру
id, name, en, es, ru .....
1, unit-1, roro, popo, куку
2, unit-2, dopa, puta, лоло
...
Рейтинг: 0 / 0
18.06.2016, 00:35
    #39258162
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
DonDiegoкак это строк... строк в одной таблице к примеру самой большой 37 тысяч строк. а я говорю именно про столбцы по 28 дополнительных ячеек на каждую строку


Строк, строк.

DonDiegoк примеру
id, name, en, es, ru .....
1, unit-1, roro, popo, куку
2, unit-2, dopa, puta, лоло

Ты примеры в виде create table двай, а не непонятные иероглифы...
...
Рейтинг: 0 / 0
18.06.2016, 16:37
    #39258281
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
авторid, name, en, es, ru .....
1, unit-1, roro, popo, куку
2, unit-2, dopa, puta, лоло

тут , вроде, и так всё ясно
если name - это имя товара на основном языке(к примеру русском) то остальные столбцы - переводы на остальные языки.
в этой постановке ничего страшного нет, всё просто
если код языка сделать в видке 1,2,4,8,16 ...
то MAKE_SET(bits, en, es, ua ,...) можно получать название очень просто.
...
Рейтинг: 0 / 0
18.06.2016, 22:45
    #39258351
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
вадяавторid, name, en, es, ru .....
1, unit-1, roro, popo, куку
2, unit-2, dopa, puta, лоло

тут , вроде, и так всё ясно
если name - это имя товара на основном языке(к примеру русском) то остальные столбцы - переводы на остальные языки.
в этой постановке ничего страшного нет, всё просто
если код языка сделать в видке 1,2,4,8,16 ...
то MAKE_SET(bits, en, es, ua ,...) можно получать название очень просто.

тогда

(id, language) ->name
...
Рейтинг: 0 / 0
18.06.2016, 22:55
    #39258355
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
MasterZiv,

MAKE_SET команда mysql
...
Рейтинг: 0 / 0
20.06.2016, 13:11
    #39258819
DonDiego
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
вадяавторid, name, en, es, ru .....
1, unit-1, roro, popo, куку
2, unit-2, dopa, puta, лоло

тут , вроде, и так всё ясно
если name - это имя товара на основном языке(к примеру русском) то остальные столбцы - переводы на остальные языки.
в этой постановке ничего страшного нет, всё просто
если код языка сделать в видке 1,2,4,8,16 ...
то MAKE_SET(bits, en, es, ua ,...) можно получать название очень просто.

Вадя спасибо за ответ, а можно поподробнее про последние две строчки
...
Рейтинг: 0 / 0
20.06.2016, 14:31
    #39258889
DonDiego
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
вадяMasterZiv,

MAKE_SET команда mysql

Вадя прочитал разобрался. Спасибо за ответ.
Но я наверное чуть не верно вопрос поставил.

вообщем смысл в том что перевод сайта построен через файлы, подключением как массив того файла какой язык используется.
а в БД есть три таблицы это команды всех чемпионатов земли, чемпионаты все и страны, которые хранят id, коды, id logo, страну и прочее.
так как команд более 37 тысяч по всем видам спорта то файл получается очень огромным, поэтому я и задался вопросом не проще ли чем каждый раз инклудить здоровенный файл, добавить к каждой строчке 28 столбцов перевода, и при запросе брать только нужный столбец.

просто когда идет выборка например событий на неделю то к событиям будет джойнится таблица команд для получения того перевода, а событий например 5000. вот в этом и вопрос что менее накладно подключать массив с языком перевода или джойнить из таблицы команд
...
Рейтинг: 0 / 0
21.06.2016, 04:14
    #39259273
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
DonDiego,
выводить 5000записей это глупость, никто их читать не станет.
присоединить перевод или «расшифровать» id на нужный язык нужно в самом конце, тогда и не будет этой проблемы, как это сделать я сказал
...
Рейтинг: 0 / 0
22.06.2016, 12:47
    #39260290
DonDiego
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
вадяDonDiego,
выводить 5000записей это глупость, никто их читать не станет.
присоединить перевод или «расшифровать» id на нужный язык нужно в самом конце, тогда и не будет этой проблемы, как это сделать я сказал
ну почему глупость если это селект с выборкой??
...
Рейтинг: 0 / 0
22.06.2016, 12:55
    #39260305
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файлы или База при огромной мультиязычности
DonDiegoвадяDonDiego,
выводить 5000записей это глупость, никто их читать не станет.
присоединить перевод или «расшифровать» id на нужный язык нужно в самом конце, тогда и не будет этой проблемы, как это сделать я сказал
ну почему глупость если это селект с выборкой??
глупость отображать такое количество конечному юзеру
никто не просматривает такое количество.
длина 2-3 экрана , если больше -то подгружением по 1 экрану.
а это уже селект по 50-60 строк.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Файлы или База при огромной мультиязычности / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]