Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Переполнение таблицы в mysql (Joomshopping и партиционирование) / 13 сообщений из 13, страница 1 из 1
31.07.2018, 04:09
    #39681355
nuclearmax85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
Доброго всем времени суток.
Очень прошу вашей помощи по 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 и каким то образом сделать так чтобы магазин и база считали их единым целым? Подскажите пожалуйста. С этим ограничением с февраля уже голову ломаю.
...
Рейтинг: 0 / 0
31.07.2018, 14:44
    #39681593
Набрызг-Бетон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
Затык не предусмотрен в SQL. Нет такого понятия.

Поэтому нужен текст "затыка" - сообщение об ошибке, картинка и тд. для пояснения явления
...
Рейтинг: 0 / 0
31.07.2018, 21:02
    #39681756
nuclearmax85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
Набрызг-Бетон,

текст затыка выдаваемый в джумле "too many column".
Вот и всё.

Слишком много колонок в таблице.
Это я и так описал в вопросе.
Больше ничего не выдается.
...
Рейтинг: 0 / 0
31.07.2018, 21:03
    #39681758
nuclearmax85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
Набрызг-Бетон,

Импорт характеристик идет через модуль импорта в джумле.
Напрямую в базу я ничего не заношу.
...
Рейтинг: 0 / 0
31.07.2018, 21:20
    #39681765
Набрызг-Бетон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
nuclearmax85, лучше понять какой запрос идет в mysql от этого движка чтобы обсуждение было более конкретным.
да, есть несколько лимитов подобных - 1000 в innodb, и 4096 в myisam.
Подобное решение считается плохим и нужно заниматься нормализацией базы.

Мне кажется, проще удавиться.
...
Рейтинг: 0 / 0
31.07.2018, 22:25
    #39681780
nuclearmax85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
Набрызг-Бетон,

Ну разработчикам вопрос про их особенности анатомии (руки из жопы) еще год назад задавали.
Они официально ответили что ничего меняться не будет.
Но мне деваться уже некуда. Магазин сделан и куча модулей куплены для JoomShoppinga.
Да конечно в каком нибудь необозримом будущем я переделаю сайт на другую систему, но сейчас вопрос как то нужно мне решить.
Просто интересно, есть ли вообще в MySQL такая возможность как создать две таблицы и как-то связать их чтобы они рассматривались модулем джумшопинга или базой как единое пространство. Типа в базе как то чтобы ппрописано было что искать в таблице товары№1 и если не найдено то в таблице товары№2.
Количество характеристик-то в конечном итоге конечное, их число не будет расти бесконечно.
...
Рейтинг: 0 / 0
31.07.2018, 22:31
    #39681781
Набрызг-Бетон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
nuclearmax85, если кто-то записал в исходник ограничение, исходник можно отредактировать и перекомпилировать.
...
Рейтинг: 0 / 0
31.07.2018, 22:44
    #39681788
nuclearmax85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
Набрызг-Бетон,

В исходник чего? Модуля импорта? Нет в нём ограничения. База не принимает больше записей и все. Столбцов ей много говорит. Около 2200 столбцов с типом text по 2-150 символов в каждом.
...
Рейтинг: 0 / 0
31.07.2018, 23:07
    #39681791
Набрызг-Бетон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
nuclearmax85, исходник mysql.
...
Рейтинг: 0 / 0
01.08.2018, 06:25
    #39681822
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
nuclearmax85Соответственно в магазине 1770 характеристик и больше не лезет, так как они все будут содержаться в таблице joomshopping_products в виде столбцов а MySQL говорит что столбцов слишком много или она имеет ввиду что данных в каждой строке слишком много, но не сутьвообще это глупо хранить характеристики в столбцах. КПД такого использования таблиц близко к 0.
...
Рейтинг: 0 / 0
01.08.2018, 22:44
    #39682277
nuclearmax85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
вадя,
Ииии что? К чему вы высказали тут свое мнение по уже известной проблеме?
Считаете что ваша оценка существующей проблемы интересна окружающим?
...
Рейтинг: 0 / 0
02.08.2018, 06:26
    #39682307
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
nuclearmax85Ииии что? К чему вы высказали тут свое мнение по уже известной проблеме?
Считаете что ваша оценка существующей проблемы интересна окружающим?искать варианты.
в любой CMS есть возможность использовать не только то , что там написано.
и ещё - ч не думаю , что создатели данной cms такие уж лохи, что не подумали что в базе может быть огромное количество параметров для свойств. поэтому стоит более внимательно подойти к структуре данных.
...
Рейтинг: 0 / 0
02.08.2018, 13:34
    #39682555
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переполнение таблицы в mysql (Joomshopping и партиционирование)
nuclearmax85В исходник чего? Модуля импорта? Нет в нём ограничения.
Зато там есть процедура, которая на каждую характеристику создаёт по столбцу. Найти и убить.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Переполнение таблицы в mysql (Joomshopping и партиционирование) / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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