|
|
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток. Очень прошу вашей помощи по mysql. Я в базах не очень разбираюсь и месяц сидения в интернетах ни к чему не привёл. Опишу проблему. Пилю магазин на JoomShopping (да-да г... полное как оказалось, но назад дороги уже нет. Несколько месяцев труда выкидывать жалко) У этого с позволения сказать магазина есть один большой недостаток. При создании товара указываются его характеристики, которые хранятся в таблицах joomshopping_extra_fields (названия хар-к цвет например) и joomshopping_extra_fields_values (значения этих характеристик например красный, синий) Также есть таблица joomshopping_products в которой есть столбцы id товара, название товара, описание товара и т.д. Так вот в этой таблице располагаются ВСЕ столбцы с характеристиками из таблиц joomshopping_extra_fields и joomshopping_extra_fields_values. Название столбцов extra_field_1, extra_field_2, extra_field_3 и т.д. Чтоб им перевернуться этим немцам-разработчикам (наверняка мстят за 45-й). Соответственно в магазине 1770 характеристик и больше не лезет, так как они все будут содержаться в таблице joomshopping_products в виде столбцов а MySQL говорит что столбцов слишком много или она имеет ввиду что данных в каждой строке слишком много, но не суть. А характеристик надо еще несколько сотен добавлять, а они не лезут. Я и так посжимал все столбца выставив им тип данных text что помогло увеличить количество характеристик с 400 до 1770. Но на этом всё-затык. Вычитал недавно в интернете инфу про партиционирование таблиц MySQL. сделал разбиение по строкам запросом ALTER TABLE n61ju_jshopping_products PARTITION BY RANGE( id ) ( PARTITION onepart VALUES LESS THAN(10000), PARTITION twopart VALUES LESS THAN(20000), PARTITION threepart VALUES LESS THAN(MAXVALUE) ); И не помогло. пробовал разбивать по колонкам ALTER TABLE n61ju_jshopping_manufacturers PARTITION BY RANGE COLUMNS( manufacturer_id ) ( PARTITION onepart VALUES LESS THAN(450), PARTITION twopart VALUES LESS THAN(600), PARTITION threepart VALUES LESS THAN(MAXVALUE) ); И тоже не помогло. И теперь вот вопрос к вам знатоки. Правильно ли я разбивал таблицу во втором случае? И как можно обойти ограничение в этом чертовом магазине? Я думал что если разбить таблицу на несколько разделов, то теоретически количество столбцов в каждом разделе станет в разы меньше, но видимо я чего то не понимаю или неправильно сделал это. Таблица хоть и разделенная теперь, но отображается также как единое целое все с тем же ограничением по количеству столбцов. Может можно создать еще одну таблицу например joomshopping_products2 и каким то образом сделать так чтобы магазин и база считали их единым целым? Подскажите пожалуйста. С этим ограничением с февраля уже голову ломаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 04:09 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
Затык не предусмотрен в SQL. Нет такого понятия. Поэтому нужен текст "затыка" - сообщение об ошибке, картинка и тд. для пояснения явления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 14:44 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
Набрызг-Бетон, текст затыка выдаваемый в джумле "too many column". Вот и всё. Слишком много колонок в таблице. Это я и так описал в вопросе. Больше ничего не выдается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 21:02 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
Набрызг-Бетон, Импорт характеристик идет через модуль импорта в джумле. Напрямую в базу я ничего не заношу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 21:03 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
nuclearmax85, лучше понять какой запрос идет в mysql от этого движка чтобы обсуждение было более конкретным. да, есть несколько лимитов подобных - 1000 в innodb, и 4096 в myisam. Подобное решение считается плохим и нужно заниматься нормализацией базы. Мне кажется, проще удавиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 21:20 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
Набрызг-Бетон, Ну разработчикам вопрос про их особенности анатомии (руки из жопы) еще год назад задавали. Они официально ответили что ничего меняться не будет. Но мне деваться уже некуда. Магазин сделан и куча модулей куплены для JoomShoppinga. Да конечно в каком нибудь необозримом будущем я переделаю сайт на другую систему, но сейчас вопрос как то нужно мне решить. Просто интересно, есть ли вообще в MySQL такая возможность как создать две таблицы и как-то связать их чтобы они рассматривались модулем джумшопинга или базой как единое пространство. Типа в базе как то чтобы ппрописано было что искать в таблице товары№1 и если не найдено то в таблице товары№2. Количество характеристик-то в конечном итоге конечное, их число не будет расти бесконечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 22:25 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
nuclearmax85, если кто-то записал в исходник ограничение, исходник можно отредактировать и перекомпилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 22:31 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
Набрызг-Бетон, В исходник чего? Модуля импорта? Нет в нём ограничения. База не принимает больше записей и все. Столбцов ей много говорит. Около 2200 столбцов с типом text по 2-150 символов в каждом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 22:44 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
nuclearmax85, исходник mysql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 23:07 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
nuclearmax85Соответственно в магазине 1770 характеристик и больше не лезет, так как они все будут содержаться в таблице joomshopping_products в виде столбцов а MySQL говорит что столбцов слишком много или она имеет ввиду что данных в каждой строке слишком много, но не сутьвообще это глупо хранить характеристики в столбцах. КПД такого использования таблиц близко к 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2018, 06:25 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
вадя, Ииии что? К чему вы высказали тут свое мнение по уже известной проблеме? Считаете что ваша оценка существующей проблемы интересна окружающим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2018, 22:44 |
|
||
|
Переполнение таблицы в mysql (Joomshopping и партиционирование)
|
|||
|---|---|---|---|
|
#18+
nuclearmax85Ииии что? К чему вы высказали тут свое мнение по уже известной проблеме? Считаете что ваша оценка существующей проблемы интересна окружающим?искать варианты. в любой CMS есть возможность использовать не только то , что там написано. и ещё - ч не думаю , что создатели данной cms такие уж лохи, что не подумали что в базе может быть огромное количество параметров для свойств. поэтому стоит более внимательно подойти к структуре данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2018, 06:26 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1829695]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 402ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...