Rassol2 Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Здравствуйте. А в опенкарт вообще можно создать мульти запрос. https://php.net/manual/ru/mysqli.quickstart.multiple-statement.php А то у меня что то не получается. Если да то как ? В файле /system/library/db/mysqli.php Я не нашел упоминания об этом. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 В документации же указано, что $this->connection->query($sql) в случае множественных запросов не выполнится из соображений безопасности. Для этого этого отдельно и ввели multi_query 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 8 минут назад, ozzzi сказал: В документации же указано, что $this->connection->query($sql) в случае множественных запросов не выполнится из соображений безопасности. Для этого этого отдельно и ввели multi_query Я конечно извиняюсь, но судя по документации php нужно составить строку которая содержит много запросов разделенных точкой с запятой. Это не проблема. Затем нужно отправить через $this->connection->multi_query($sql); так вот в рамках опенкарт нету такого метода. multi_query И при попытке вызвать его получаем Fatal error: Uncaught Error: Call to undefined method DB::multi_query() in Поскольку такого нету в библиотеке /system/library/db/mysqli.php Спойлер Вот и суть вопроса. В опенкарт это возможно или нет ? И если да то как. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 4 минуты назад, Rassol2 сказал: И если да то как. 5 минут назад, Rassol2 сказал: так вот в рамках опенкарт нету такого метода. multi_query так добавьте 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 9 минут назад, fanatic сказал: так добавьте 5 минут назад, ozzzi сказал: Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } значит нету возможности. И нужно добавлять. А вмешивается в работу стандартных библиотек не особо хочется. 6 минут назад, chukcha сказал: Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер Тайных смыслов нету. Хочется поработать с данной функцией. Есть необходимость массово записать много значений в таблицу. И что бы не использовать цикл с запросами хотел попробовать мульти запрос. Буду думать всем кто отписался спасибо. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 В документации же указано, что $this->connection->query($sql) в случае множественных запросов не выполнится из соображений безопасности. Для этого этого отдельно и ввели multi_query 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 8 минут назад, ozzzi сказал: В документации же указано, что $this->connection->query($sql) в случае множественных запросов не выполнится из соображений безопасности. Для этого этого отдельно и ввели multi_query Я конечно извиняюсь, но судя по документации php нужно составить строку которая содержит много запросов разделенных точкой с запятой. Это не проблема. Затем нужно отправить через $this->connection->multi_query($sql); так вот в рамках опенкарт нету такого метода. multi_query И при попытке вызвать его получаем Fatal error: Uncaught Error: Call to undefined method DB::multi_query() in Поскольку такого нету в библиотеке /system/library/db/mysqli.php Спойлер Вот и суть вопроса. В опенкарт это возможно или нет ? И если да то как. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 4 минуты назад, Rassol2 сказал: И если да то как. 5 минут назад, Rassol2 сказал: так вот в рамках опенкарт нету такого метода. multi_query так добавьте 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 9 минут назад, fanatic сказал: так добавьте 5 минут назад, ozzzi сказал: Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } значит нету возможности. И нужно добавлять. А вмешивается в работу стандартных библиотек не особо хочется. 6 минут назад, chukcha сказал: Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер Тайных смыслов нету. Хочется поработать с данной функцией. Есть необходимость массово записать много значений в таблицу. И что бы не использовать цикл с запросами хотел попробовать мульти запрос. Буду думать всем кто отписался спасибо. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 8 минут назад, ozzzi сказал: В документации же указано, что $this->connection->query($sql) в случае множественных запросов не выполнится из соображений безопасности. Для этого этого отдельно и ввели multi_query Я конечно извиняюсь, но судя по документации php нужно составить строку которая содержит много запросов разделенных точкой с запятой. Это не проблема. Затем нужно отправить через $this->connection->multi_query($sql); так вот в рамках опенкарт нету такого метода. multi_query И при попытке вызвать его получаем Fatal error: Uncaught Error: Call to undefined method DB::multi_query() in Поскольку такого нету в библиотеке /system/library/db/mysqli.php Спойлер Вот и суть вопроса. В опенкарт это возможно или нет ? И если да то как. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 4 минуты назад, Rassol2 сказал: И если да то как. 5 минут назад, Rassol2 сказал: так вот в рамках опенкарт нету такого метода. multi_query так добавьте 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 9 минут назад, fanatic сказал: так добавьте 5 минут назад, ozzzi сказал: Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } значит нету возможности. И нужно добавлять. А вмешивается в работу стандартных библиотек не особо хочется. 6 минут назад, chukcha сказал: Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер Тайных смыслов нету. Хочется поработать с данной функцией. Есть необходимость массово записать много значений в таблицу. И что бы не использовать цикл с запросами хотел попробовать мульти запрос. Буду думать всем кто отписался спасибо. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
fanatic Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 4 минуты назад, Rassol2 сказал: И если да то как. 5 минут назад, Rassol2 сказал: так вот в рамках опенкарт нету такого метода. multi_query так добавьте 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 9 минут назад, fanatic сказал: так добавьте 5 минут назад, ozzzi сказал: Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } значит нету возможности. И нужно добавлять. А вмешивается в работу стандартных библиотек не особо хочется. 6 минут назад, chukcha сказал: Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер Тайных смыслов нету. Хочется поработать с данной функцией. Есть необходимость массово записать много значений в таблицу. И что бы не использовать цикл с запросами хотел попробовать мульти запрос. Буду думать всем кто отписался спасибо. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 9 минут назад, fanatic сказал: так добавьте 5 минут назад, ozzzi сказал: Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } значит нету возможности. И нужно добавлять. А вмешивается в работу стандартных библиотек не особо хочется. 6 минут назад, chukcha сказал: Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер Тайных смыслов нету. Хочется поработать с данной функцией. Есть необходимость массово записать много значений в таблицу. И что бы не использовать цикл с запросами хотел попробовать мульти запрос. Буду думать всем кто отписался спасибо. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ozzzi Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 9 минут назад, fanatic сказал: так добавьте 5 минут назад, ozzzi сказал: Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } значит нету возможности. И нужно добавлять. А вмешивается в работу стандартных библиотек не особо хочется. 6 минут назад, chukcha сказал: Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер Тайных смыслов нету. Хочется поработать с данной функцией. Есть необходимость массово записать много значений в таблицу. И что бы не использовать цикл с запросами хотел попробовать мульти запрос. Буду думать всем кто отписался спасибо. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 9 минут назад, fanatic сказал: так добавьте 5 минут назад, ozzzi сказал: Сами же все описали: метода нужного нет. Чтобы заработало нужно его добавить, иначе никак. public function multi_query($sql) { $this->connection->multi_query($sql); } значит нету возможности. И нужно добавлять. А вмешивается в работу стандартных библиотек не особо хочется. 6 минут назад, chukcha сказал: Какой тайный смысл? Но можно и добавить методы как в либу, так и в адаптер Тайных смыслов нету. Хочется поработать с данной функцией. Есть необходимость массово записать много значений в таблицу. И что бы не использовать цикл с запросами хотел попробовать мульти запрос. Буду думать всем кто отписался спасибо. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 6 минут назад, Rassol2 сказал: Есть необходимость массово записать много значений в таблицу. Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Так может сформировать массивы? INSERT INTO table (id, name, value) VALUES (1,'name','value'), (2,'name1','value2') Да можно. Так и есть сейчас массив который по очереди выполняет запрос. Но суть вот в чем. Есть 80т ссылок. Которые нужно записать в базу данных. Причем нужно произвести перед записью проверку есть ли в базе такая ссылка. По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. Вот я и подумал. Заменить сделать запрос INSERT INTO с проверкой. Что бы проверка была на уровне базы данных. Это сразу сократить с 160т до 80 необходимых запросов. А ели у меня будет массив с запросами почему бы не обьеденить в один мульти запрос. И сократить количество соединений с базой. Но это я так балуюсь, нужно же на чем то учится ))) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 1 июля 2019 Поделиться Опубликовано: 1 июля 2019 Это одноразовые работы, поэтому можно и по одному и в цикле Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 1 июля 2019 Автор Поделиться Опубликовано: 1 июля 2019 1 минуту назад, chukcha сказал: Это одноразовые работы, поэтому можно и по одному и в цикле тут вы правы. Но это и породила мой интерес к мульти запросам. Стало интересно поработать с этим. Вот и спросил. Но теперь прицепи все ясно. так что вопрос можно считать закрытым. Пойду играться дальше. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 12 часов назад, Rassol2 сказал: По моим подсчетам получается нужно сделать переборку массива и на каждый элемент сделать проверку есть такая запись или нет. Если нет то записать. Получается вместо 80т уже 160 + php 80т проверок if. достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? вы предлагаете потащить базу в которой почти 100 000ссылок. Затем сравнить с массивом новых и записать обратно ? Но иногда нужно сравнивать по 1800 ссылок за раз. Хотя я подумаю может действительно такой вариант будет экономнее. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 2 часа назад, chukcha сказал: @fanatic Вот чего нет в адаптере - это сырого результата - или ссылки на курсор, Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными о да! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 3 часа назад, fanatic сказал: достаем ссылки из базы фильтруем новые данные и формируем values добавляем не? но у меня тогда есть еше вопрос. А если в базе будет пол миллиона ссылок ? Дергать такой массив для сравнения мне кажется не целесообразно. Может вы знаете вариант запроса в БД который заменил бы вот такой код php $count = $this->db->query("SELECT id FROM `" . DB_PREFIX . "pars_link` WHERE `link`='".$this->db->escape($link)."' AND `dn_id` =".(int)$dn_id." LIMIT 1"); if($count->num_rows == 0){ $this->db->query("INSERT INTO `" . DB_PREFIX . "pars_link` SET `link` ='".$this->db->escape($link)."', `dn_id`=".(int)$dn_id); } Один запрос которые содержал бы условие, если нету тогда записать ? Поле link и dn_id не уникальный ключ. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
fanatic Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 3 часа назад, chukcha сказал: Для больших запросов нужно самому пробегаться по курсору, а не получать объект с данными попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Bn174uk Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Сделай уник и тогда появится много вариантов... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 8 минут назад, fanatic сказал: пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Возможно ограничение на размер запроса Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 12 минут назад, fanatic сказал: попробовал(локально) пол лимона база скушала. два поля - коротенькое описание и ссылка лимон не хочет Вот та конструкция что выше что я написал. При получении массива на 1900ссылок а это поле обработки одной ссылки. Залазиет в базу за 19 секунд. а когда в очереди 45259ссылок это получается что для завершения. процесса нужно ждать всего ничего 10 дней непрерывно 12 минут назад, Bn174uk сказал: А что мешает сделать доп. таблицу под новые ссылки? Потом просто из этой таблицы получить уникальные ссылки и загрузить в основную таблицу, а доп. таблицу просто потом чистить при каждом сборе новых ссылок. Вроде в разы проще в реализации и по запросом меньше будет к БД. 1)Запрос на запись ссылок во временную таблицу; 2)Запрос на получение уникальных ссылок; 3)Записать эти ссылки в основную таблицу. П.С. Если в чем-то ошибаюсь поправьте меня. Идея тоже интересная. Но система построена так что модуль кушает одну ссылку делает все дела. И цикл заканчивается. А затем браузер в роли демона дергает повторно через ajax скрипт и все повторяется. При таком подходе получается что временную таблицу нужно будет очищать после каждой ссылки. и процесс будет таким. Получили 1900 ссылок записали в временную базу в цикле по одной. Затем скопировали уникальные значения в постоянную базу. Очистили временную базу. И по новой. Я новичке в программировании и не уверен что это оправдано. Нужен совет бывалых. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 7 минут назад, Yesvik сказал: Сделай уник и тогда появится много вариантов... тоже да. Но тут другая конструкция вылазите. Ссылки не могут быть уникальным полем. Потому что одни и теже ссылки могут находится в базе. Просто присвоены разным формам. Спойлер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha
Rassol2 Опубликовано: 2 июля 2019 Автор Поделиться Опубликовано: 2 июля 2019 Для меня идеальный вариант было бы выполнение INSERT + проверка перед записью, если есть такое поле пропустить. Что бы это происходило на уровне базы данных. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Помощь программистам и разработчикам Возможно ли формировать мульти запросы в Opencart
AlexDW Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 может что из этого https://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysq 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
Yesvik Опубликовано: 2 июля 2019 Поделиться Опубликовано: 2 июля 2019 Так добавь поле с хешем MD5 link+dn_id 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0
Рекомендованные сообщения