Имя: Пароль:
IT
Веб-мастеринг
MySQL - максимальное количество столбцов
,
0 FoxFox
 
02.06.13
18:44
Предыстория проблемы:
Делаю интеграцию 1С-овской конфы с интернет-магазином, в ней используется компонент, в котором весьма извращенно реализовано хранение свойств товаров: для каждого из них в таблице товаров добавляется колонка "extra_field_" + ИД характеристики. Оригинально, что сказать.
Проблема: При программном создании колонок на каком-то этапе MySQL посылает с ошибкой "Too many columns" (в этот момент их 1500). Читаю инфу, от чего это зависит, пишут, что ограничивается не количество колонок, а размер таблицы - 4Гб. Смотрю в админке баз, требуемая таблица занимает 6.5 мегабайт - тоже "круглое" число.. Поскольку это все хозяйство крутится на том, что установилось с Denwer'ом, подозреваю, что где-то в настройках стоит ограничение, но где? И где еще копать? Ну и сразу чтобы знать, что делать, если на рабочем хостинге будет такая же напасть.
1 Asmody
 
02.06.13
18:56
За структуру такую, конечно, надо руки обратно у жопе приделывать.
Попробуй заменить MySQL на MariaDB
2 КонецЦикла
 
02.06.13
19:08
Тоже вожусь сейчас с инет-магазином. Я бы отказался от такого проекта. Естественно напасть будет, и не одна... а когда еще начнутся реальные просмотры и заказы?
3 ice777
 
02.06.13
20:03
(1) а разве от смены БД.. а, ну ладно, дадут автору другую компоненту, которая будет делать строчки..
4 Asmody
 
02.06.13
20:47
(3) Мария - это форк мускуля, причем от создателя, который не захотел под Oracle ложиться. Мария развивается очень успешно и быстрее, чем мускуль
5 zmaximka
 
02.06.13
21:19
1500 колонок в таблице? ИМХО что то не так в консерватории
6 Asmody
 
03.06.13
00:18
а еще в Марии есть динамические колонки. это вообще аналог свойств https://kb.askmonty.org/en/dynamic-columns/
7 FoxFox
 
03.06.13
05:12
(2) (3)  Интернет-магазин давно уже крутится, до этого они уже делали загрузку данных из 1С через файлики, а сейчас хотят онлайн. И поскольку мне дали для работы сайт именно с этой компонентой, по всей видимости и дальше с ней будут работать
(1) Для тестов на своей машине можно попробовать, вопрос в том, что если на рабочем хостинге такое случится (очень надеюсь, что нет), тогда где крутить настройки
8 ЧеловекДуши
 
03.06.13
05:22
(7) Оптимизируй запрос, получай данный партиями :)
9 Escander
 
03.06.13
05:23
(4) ну чё так сразу прям ложиться! почти все мы продаём свой труд, умения, навыки... в конце концов "кого нельзя купить, того можно продать"!
10 ЧеловекДуши
 
03.06.13
05:23
(5) Это от кривизны рук...
Походу тот кто лепит таблицу, тупо строчки забил в колонки для наглядности, веди так же проще :)
11 Escander
 
03.06.13
05:24
(0) пиши свою собственную выгрузку а не на основе непристойного назначения компонент
12 Escander
 
03.06.13
05:24
(5) 1500 товаров - для магазина это не много
13 FoxFox
 
03.06.13
05:45
(11) Ты не понял, эта компонента в движке интернет-магазина, а не в выгрузке 1С, которая полностью самописная и не использует никаких дополнительных компонент (ну если не считать программулинку для обработки изображений).
(12) 1500 свойств товаров, а не самих товаров! Товаров в тестовой базе пока 10к, думаю, будет больше
14 FoxFox
 
03.06.13
05:49
(8) Щито? :) Куда уж оптимальнее:
ALTER TABLE " + ПрефиксБД +"_jshopping_products
ADD extra_field_666 INT(11)"
15 Escander
 
03.06.13
06:12
(13) ну всё-же что-бы не написать свою выгрузку?
16 FoxFox
 
03.06.13
06:19
(15) Читай еще и еще до полного просветления (13): "в выгрузке 1С, которая полностью самописная " :)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой