|
|
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
miksoftOLEG_2005А можно узнать, с каким проблемами вы сталкивались при использовании MYSQL? Какие запросы было трудно оптимизировать в MYSQL? Вы использовали множество JOIN для вывода всех атрибутов или получали атрибуты в строках и выполняли обрабтку в программе, если вам нужно было выводить сущность со значениями атрибутов?Тот запрос был наоборот, для поиска объекта по набору атрибутов. Сначала пытался использовать варианты с множеством JOIN-ов и с GROUP BY ... HAVING COUNT(*)=..., но в итоге пришлось их совмещать. А отображение атрибутов в той системе проблемой не было, так как требовалось отобразить атрибуты ровно одного объекта. А сами атрибуты вам надо было редактировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 11:43 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
OLEG_2005А сами атрибуты вам надо было редактировать?Конкретно в той базе - нет, туда данные переливались из корпоративной базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 11:49 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
On 13.10.2010 10:49, OLEG_2005 wrote: > Здесь видимо проблема не в физическом размере одной записи, так как количество > атрибутов весьма умеренное. Только в этом и проблема. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 11:58 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
On 13.10.2010 11:20, miksoft wrote: > Не могу не согласиться с MasterZiv, MySQL - не лучшая СУБД для такой задачи. MySQL - не лучшая СУБД для любой задачи. Просто не лучшая СУБД. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 11:59 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
On 13.10.2010 11:40, miksoft wrote: > Тот запрос был наоборот, для поиска объекта по набору атрибутов. Так это вообще для EAV сложный запрос. Плохой. Отдельный атрибут может быть нифига не селективный, а вместе три - наоборот, высоко селективный критерий. А индекс по совокупности не построить. Для любой СУБД нетривиальная задача. Я MySQL конечно не люблю, но истина дороже. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 12:03 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
MasterZiv On 13.10.2010 10:49, OLEG_2005 wrote: > Здесь видимо проблема не в физическом размере одной записи, так как количество > атрибутов весьма умеренное. Только в этом и проблема. А могли бы пояснить, что вы имеете в виду, говоря о проблеме с физиским размером одной записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 12:12 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
А могли бы пояснить, что вы имеете в виду, говоря о проблеме с физическим размером одной записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 12:13 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
On 13.10.2010 13:12, OLEG_2005 wrote: > А могли бы пояснить, что вы имеете в виду, говоря о проблеме с физиским размером > одной записи? Я ж писал. Суммарный размер одной строки в СУБД в большинстве СУБД ограничен физически. Кол-во атрибутов в строке тоже часто имеет верхний порог. Это на самом деле и есть основная предпосылка для существования EAV. Это, и требование наличия возможности добавлять новые атрибуты пользователями. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 13:01 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
MasterZiv On 13.10.2010 13:12, OLEG_2005 wrote: > А могли бы пояснить, что вы имеете в виду, говоря о проблеме с физиским размером > одной записи? Я ж писал. Суммарный размер одной строки в СУБД в большинстве СУБД ограничен физически. Кол-во атрибутов в строке тоже часто имеет верхний порог. Это на самом деле и есть основная предпосылка для существования EAV. Это, и требование наличия возможности добавлять новые атрибуты пользователями. Я пока не нашел максимальный размер записи для MYSQL, но мне кажется, что несколько десятков атрибутов можно было бы вполне хранить в столбцах таблицы, даже, если среди них есть довольно большие по размеру текстовые поля, хотя может быть я и ошибаюсь. Я бы сказал для задачи можно ограничить максимальное количество атрибутов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 13:26 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
MasterZiv On 13.10.2010 13:12, OLEG_2005 wrote: > А могли бы пояснить, что вы имеете в виду, говоря о проблеме с физиским размером > одной записи? Я ж писал. Суммарный размер одной строки в СУБД в большинстве СУБД ограничен физически. Кол-во атрибутов в строке тоже часто имеет верхний порог. Это на самом деле и есть основная предпосылка для существования EAV. Это, и требование наличия возможности добавлять новые атрибуты пользователями. А вот требование наличие возможности изменения набора атрибутов наверное не оставляет альтернативы использованию EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 13:28 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
OLEG_2005Я пока не нашел максимальный размер записи для MYSQLНеубедительно. тынц1 тынц2 это первое, что подвернулось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 13:37 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
miksoftOLEG_2005Я пока не нашел максимальный размер записи для MYSQLНеубедительно. тынц1 тынц2 это первое, что подвернулось... Большое спасибо за ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 13:47 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
Как вы думаете может для подобных систем нецелесообразно использовать реляционные БД вообще, а использовать что-то вроде: Amazon SimpleDB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 17:02 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
OLEG_2005Как вы думаете может для подобных систем нецелесообразно использовать реляционные БД вообще, а использовать что-то вроде: Amazon SimpleDB.Зависит от масштабов и нагрузки. Сомневаюсь, что у вас случатся такие нагрузки, что РСУБД станет недостаточно. Даже MySQL-я хватит надолго, если правильно его готовить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 17:17 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
miksoftOLEG_2005Как вы думаете может для подобных систем нецелесообразно использовать реляционные БД вообще, а использовать что-то вроде: Amazon SimpleDB.Зависит от масштабов и нагрузки. Сомневаюсь, что у вас случатся такие нагрузки, что РСУБД станет недостаточно. Даже MySQL-я хватит надолго, если правильно его готовить. Прогнозировать нагрузку сейчас довольно тяжело, если ориентироваться на аналогичные серисы, то это десятки - сотни тысяч клиентов, каждые из которых хранят тысячи - десятки - иногда сотни тысяч подписчиков и которым надо регулярно отправлять рассылки (персонифицированные), которые делает клиент. Каждый клиент может содержать несколько списков подписчиков и отправлять кампанию как все подписчикам списка, так и некоторому сегоменту, который предавлятеся собой набор условий по атрибутам подписчиков. Как я понял в системах подобных Amazon SimpleDB для повышения масштабирования в жертву приносится целостность данных. Может быть я не прав. Похоже такие системы позволяют легко решить задачу переменного числа атрибутов, но не усложняют ли они другие вещи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 17:46 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
OLEG_2005Прогнозировать нагрузку сейчас довольно тяжело, если ориентироваться на аналогичные серисы, то это десятки - сотни тысяч клиентов, каждые из которых хранят тысячи - десятки - иногда сотни тысяч подписчиков и которым надо регулярно отправлять рассылки (персонифицированные), которые делает клиент. Каждый клиент может содержать несколько списков подписчиков и отправлять кампанию как все подписчикам списка, так и некоторому сегоменту, который предавлятеся собой набор условий по атрибутам подписчиков.Ничего не посильного для РСУБД тут не вижу. Тем более, что вы наверняка сильно переоцениваете масштабы. В любом случае - начинайте на любой СУБД, хоть на MySQL. Переписывать все с нуля все равно на определенном этапе придется, когда поймете каких ошибок понаделали и груз этих ошибок станет слишком тяжел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 17:50 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
miksoftOLEG_2005Прогнозировать нагрузку сейчас довольно тяжело, если ориентироваться на аналогичные серисы, то это десятки - сотни тысяч клиентов, каждые из которых хранят тысячи - десятки - иногда сотни тысяч подписчиков и которым надо регулярно отправлять рассылки (персонифицированные), которые делает клиент. Каждый клиент может содержать несколько списков подписчиков и отправлять кампанию как все подписчикам списка, так и некоторому сегоменту, который предавлятеся собой набор условий по атрибутам подписчиков.Ничего не посильного для РСУБД тут не вижу. Тем более, что вы наверняка сильно переоцениваете масштабы. В любом случае - начинайте на любой СУБД, хоть на MySQL. Переписывать все с нуля все равно на определенном этапе придется, когда поймете каких ошибок понаделали и груз этих ошибок станет слишком тяжел. Так в общем случае пока и происходит, пытаемся реализовать функциональность, используя MYSQL. Сильно усложняет то, что для каждого списка подпичиков может динамически задаваться набор атрибутов, которые должны храниться для подписчиков списка, их нужно редактировать и на основании их в случае необходимости формировать сегменты для отправки рассылки только этому сегменту, а не всему списку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 17:56 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
OLEG_2005Сильно усложняет то, что для каждого списка подпичиков может динамически задаваться набор атрибутов, которые должны храниться для подписчиков списка, их нужно редактировать и на основании их в случае необходимости формировать сегменты для отправки рассылки только этому сегменту, а не всему списку.И что тут сложного? Привязывайте набор атрибутов к сегменту, а не к пользователю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 18:08 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
miksoftOLEG_2005Сильно усложняет то, что для каждого списка подпичиков может динамически задаваться набор атрибутов, которые должны храниться для подписчиков списка, их нужно редактировать и на основании их в случае необходимости формировать сегменты для отправки рассылки только этому сегменту, а не всему списку.И что тут сложного? Привязывайте набор атрибутов к сегменту, а не к пользователю. Сложность - работа с подписчиками, которые могу иметь как стандартные атрибуты (храняться в столбцах таблицы подписчиков), так и динамические атрибуты EAV. Логика манипулирования таким подписчиками в списке усложняется, даже например, такая тривиальная операция как вывод всех атрибутов списка со всеми атрибутами (как постоянными, так и динаическими), а таке список групп, куда входит подписчик (с каждым списком может быть связано произвольное число груп, куда могу входить подписчики списка, становится довольно непростой задачей. Тоесть вывод что-то вроде Подписчики списка 1: email (постоянное поле) далее динамические firstname lastname Любимые бренды (название группы) sfff@gmail.com Panasonic, SONY, Toshiba Также усложняется редактирование каждого из атрибутов, некоторые постоянные, некоторые динамические. Это то усложнение, которые видится сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 18:25 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
Нашел ссылку на ещё один метод реаклизации набора атрибутов, определяемых пользователем. Её называют the Fixed Table. Предполагается, что число возможных атрибутов определяемых пользователем ограничено. Её можно посмотреть здесь: http://blog.springsource.com/arjen/archives/2008/01/24/storing-custom-fields-in-the-database/ Кто-нибудь пробовал реализовывать похожую модель? Она вообще реализуема на практике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 20:11 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
OLEG_2005Она вообще реализуема на практике?Вполне реализуема. Только делает весьма затруднительным поиск объекта по произвольному набору атрибутов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 20:16 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
miksoftOLEG_2005Она вообще реализуема на практике?Вполне реализуема. Только делает весьма затруднительным поиск объекта по произвольному набору атрибутов. В чем вы видете проблему помска побъекта по произвольноому набору атрибутов? В этом случае пришлось бы, видимо, добавлять огромное число индексов, для поиска по всем атрибутам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 20:34 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
OLEG_2005miksoftOLEG_2005Она вообще реализуема на практике?Вполне реализуема. Только делает весьма затруднительным поиск объекта по произвольному набору атрибутов. В чем вы видете проблему помска побъекта по произвольноому набору атрибутов? В этом случае пришлось бы, видимо, добавлять огромное число индексов, для поиска по всем атрибутам.MasterZivОтдельный атрибут может быть нифига не селективный, а вместе три - наоборот, высоко селективный критерий. А индекс по совокупности не построить.В данном случае индекс по нескольким атрибутам построить можно, но по всем возможным их комбинациям - нет. Кроме того, большое количество индексов: 1) затрудняет работу оптимизатора. 2) уменьшает производительность всех INSERT/UPDATE/DELETE. И еще - становятся велики шансы налететь на ограничения размера записи, обсуждалось выше. При "утаптывании" размера записи может возникнуть желание использовать специальные типы (числа, даты, время), вместо общего строкового. Что, в свою очередь, приведет к ограничениям по количеству атрубутов каждого типа. Кому-то из клиентов может захотеться 20 дат, а кому-то - 20 чисел. В итоге 20+20 полей в лимит могут не уместиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 20:44 |
|
||
|
стоит ли использовать EAV, если число параметров ограничено
|
|||
|---|---|---|---|
|
#18+
а если рассмотреть в качестве СУБД что-то с xquery... к примеру MSSQL, и хранить "переменный" набор в xml? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2010, 20:48 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36896613&tid=1542492]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 512ms |

| 0 / 0 |
