lstaticl

lstaticl
Рейтинг
82
Регистрация
07.02.2008
gromozek:
в том то все и дело, что на адалте прокладка не нужна. 96р. - это единоразовый или средний? Я спрашивал про средний

Единоразовый. Я ж говорю, у меня 1 смска с 2к с копейками уников...

А у кого какой конверт на космоварс?

У меня ребил 96р.

Траф нормальный, с тизеров. На фамилиях 1:50 конвертится. А адалт прям мертвый какой-то... Видимо я не умею его готовить :)

Не очень представляю прокладку под адалт траф. Может кто подскажет как она должна выглядеть? Что-то типа: Личный блог Дрочера Задротовича с рекомендациями где круче порнуха?)))

Buharik:
У кого как сегодня на адалте с подписками и смс? У меня что то глухо.

У меня вообще за неделю полива на адалт 1 подписка. Получается славное ратио = 1:2000... ппц какое-то.

Может у меня не так много проектов, но ни по одному из них (5шт.) никаких ярких подвижек в +/- не было

netwind:
Но глобальные блокировки таблицы замедлят сайт в целом, что, вероятно, противоречит вашим целям, из-за которых вы решили делать такую вставку.

Вполне вероятно. Но чтобы с уверенность так сказать, нужно все протестировать и оперировать живыми цифрами, а не предположениями :)

Будет свободное время, займусь. Потом отпишусь о результатах

Аццкий запрос:


SELECT * FROM `table` WHERE stolb_p LIKE '%searchword%' OR stolb_m LIKE '%searchword%' OR stolb_r LIKE '%searchword%' OR stolb_k LIKE '%searchword%';

Почитал повнимательнее, нашел, что для InnoDB можно повесить WRITE-блокировку, чтобы быть уверенным, что во время одного INSERT'a не начнет работать другой.

И тогда действительно для вычисления вставленных индексов хватит конструкции:


/**
* Возвращает список всех вставленных ID с помощью multiInsert()
**/
function get_all_insert_id($countLines) {
$arID = array();
for ($i = Mysql_insert_id(); $i <= (Mysql_insert_id() + $countLines); $i++) {
$arID[] = $i;
}

return $arID;
}

lstaticl добавил 24.01.2011 в 18:11

netwind:

и, пожалуй, ожидать наличия mysqli на произвольном хостинге не стоит.

Сервера все свои. Так что с этим проблем нету :)

netwind:
Слишком безаппеляционно, не находите?

Допустим вы напишите большую вставку и тем самым заблокируете select-запросы и скрипты всего сайта (!) остановятся на 1-5 секунд, после чего все вместе начнут исполнятся - нагрузка скаканет и неизвестно выравняется ли потом вообще.

Нахожу. И с удовольствием поразмышлял бы на тему более предметно. Но есть задача, которую надо решить в срок.

Дело не в настолько большой вставке, которая повесит базу на >=1 сек. Я тут размышляю более локально, что в рамках данной задачи, проблемы больше за собой тянет вариант если гонять много INSERT'ов в циклах, чем multi insert.

А вопрос собстна так и остался нераскрытым. Есть ли возможность получить список вставленных ID.

Я так понимаю "безкостыльного" - нету.

netwind:

А расскажите зачем вам это нужно?
Числом запросов много времени не сэкономить. Подобное используется если mysql-сервер подключается по тормозной сети. Тогда отправка мелких запросов крупными пачками и получение ответа опять же пачкой выгоднее по времени.

Это нужно чтобы сильно сэкономить время и нагрузку на сервер БД.

Давно проверено, что INSERT запросы в цикле отрабатывают значительно медленнее, чем MULTI-запрос. (Одна из тем: http://zendframework.ru/forum/index.php?topic=850.msg5800#msg5800)

lstaticl добавил 24.01.2011 в 16:32

Если запустить два процесса на вставку параллельно, второй будет ждать окончания первого.

если это правда, то тогда утверждение про +3 годится

mysql_insert_id() выдаст первый идентификатор
mysql_insert_id()+3 - выдаст последний идентификатор
Всего: 201