- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов

В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Собстна сабж, есть MultiInsert запрос. Например:
Он вставит в БД(MySQL) 3 записи. (но не известно с какими ID). Ограничений на вставку никаких нет, а значит в один момент времени могут начать вставлять 2 и более пользователя.
Вопрос: Возможно ли как-то узнать id записей, что вставил такой запрос?
Попробуйте http://www.php.su/functions/?mysql_insert_id
Попробуйте http://www.php.su/functions/?mysql_insert_id
Вы или невнимательно читаете задачу, или не понимаете сути вопроса... эта функция не вернет требуемый результат.
Еще варианты есть?
lstaticl, MySQL умный.
mysql_insert_id() выдаст первый идентификатор
mysql_insert_id()+3 - выдаст последний идентификатор
Если запустить два процесса на вставку параллельно, второй будет ждать окончания первого. Как заметил netwind, при innodb нужно проверять дополнительно.
по идее C-api это позволяет - посылать пачку запросов и последовательно забирать результаты
не уверен что в php это реализовано правильно.
http://ru.php.net/manual/en/mysqli.multi-query.php
А расскажите зачем вам это нужно?
Числом запросов много времени не сэкономить. Подобное используется если mysql-сервер подключается по тормозной сети. Тогда отправка мелких запросов крупными пачками и получение ответа опять же пачкой выгоднее по времени.
netwind добавил 24.01.2011 в 15:57
lstaticl, MySQL умный.
mysql_insert_id() выдаст первый идентификатор
mysql_insert_id()+3 - выдаст последний идентификатор
Если запустить два процесса на вставку параллельно, второй будет ждать окончания первого
интересно. но что произойдет если используется innodb ? я не знаю, кстати.
счетчик auto increment он как бы сам по себе и не зависит числа вставленных записей.
на сколько я помню, то в исходниках mysql_insert_id как раз идет обычный запрос select max(id) ...
Честно, не знаю. Не проверялся.
а нет, забираю слова назад, точно не знаю, может оно как-то на API MySQL
А расскажите зачем вам это нужно?
Числом запросов много времени не сэкономить. Подобное используется если mysql-сервер подключается по тормозной сети. Тогда отправка мелких запросов крупными пачками и получение ответа опять же пачкой выгоднее по времени.
Это нужно чтобы сильно сэкономить время и нагрузку на сервер БД.
Давно проверено, что INSERT запросы в цикле отрабатывают значительно медленнее, чем MULTI-запрос. (Одна из тем: http://zendframework.ru/forum/index.php?topic=850.msg5800#msg5800)
lstaticl добавил 24.01.2011 в 16:32
если это правда, то тогда утверждение про +3 годится
mysql_insert_id()+3 - выдаст последний идентификатор
Давно проверено, что INSERT запросы в цикле отрабатывают значительно медленнее, чем MULTI-запрос. (Одна из тем: http://zendframework.ru/forum/index....sg5800#msg5800)
Слишком безаппеляционно, не находите?
Допустим вы напишите большую вставку и тем самым заблокируете select-запросы и скрипты всего сайта (!) остановятся на 1-5 секунд, после чего все вместе начнут исполнятся - нагрузка скаканет и неизвестно выравняется ли потом вообще.
Слишком безаппеляционно, не находите?
Допустим вы напишите большую вставку и тем самым заблокируете select-запросы и скрипты всего сайта (!) остановятся на 1-5 секунд, после чего все вместе начнут исполнятся - нагрузка скаканет и неизвестно выравняется ли потом вообще.
Нахожу. И с удовольствием поразмышлял бы на тему более предметно. Но есть задача, которую надо решить в срок.
Дело не в настолько большой вставке, которая повесит базу на >=1 сек. Я тут размышляю более локально, что в рамках данной задачи, проблемы больше за собой тянет вариант если гонять много INSERT'ов в циклах, чем multi insert.
А вопрос собстна так и остался нераскрытым. Есть ли возможность получить список вставленных ID.
Я так понимаю "безкостыльного" - нету.