Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
alex564657498765453зы я бы не так делал, и начал бы с абсурдности поиска минимального айди. абсурдности. 1)мы нашли минимальный 10, потенциальная проблема, что другой запрос тоже найдёт минимальный 10, вместо 11 - тогда возникает вопрос, разве не было бы решением если второй искал бы сразу не минимальное а 11. это явно автора устраивает, соответсвенно вопрос - так зачем мы исчём именно минимальное, а не просто любое значение которого нету? а я бы посмотрела a) на код где вы находите 11-й отсутствующий ID б) на код где вы находите произвольный отсутствующий ID с) давайте предполагать, что автор использовал SMALLINT для ID =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 17:49 |
|
||
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
mini.weblabalex564657498765453зы я бы не так делал, и начал бы с абсурдности поиска минимального айди. абсурдности. 1)мы нашли минимальный 10, потенциальная проблема, что другой запрос тоже найдёт минимальный 10, вместо 11 - тогда возникает вопрос, разве не было бы решением если второй искал бы сразу не минимальное а 11. это явно автора устраивает, соответсвенно вопрос - так зачем мы исчём именно минимальное, а не просто любое значение которого нету? а я бы посмотрела a) на код где вы находите 11-й отсутствующий ID б) на код где вы находите произвольный отсутствующий ID с) давайте предполагать, что автор использовал SMALLINT для ID =) с)и что, религия запрещает перейти на другой тип? б)как два пальца об асфальт.даже без джоина,...сдесь на форуме уже были даже готовые примеры через переменные а)вы не поняли мысли.... зачем акцент на минимальном айди, и как пример, второй процес сразу взял себе 11, а первый 10 потом- они искали не минимальный...но суммарный эффект как будто бы минимальный - явно не противоречит ТС, а следовательно - требования а минимальности не обязательное условия для решения задачи. ... это догматично показал на пальцах, что минимальность сдесь не нужна(ну либо ТС плохо описал что у него там проиходит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 08:23 |
|
||
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
О! Оживление =) В общем, не буду привязываться к цитатам отвечу в общем. Да скорее всего я и погорячился - может не месяц, может даже не два и не год. Но!!! Это еще хуже, сейчас я знаю об этом узком месте и пытаюсь его оптимизировать, но забей я на это - в один прекрасный момент получаю баг, потери времени на исправление, потере на возмещение убытков простоя и т.д. Сейчас у нас 8 едентичных баз(разные города), кто знает сколько их будет через год-два... И уж тем более потом угадай в какой базе кончатся айдишники... Зачем эта бомба замедленного действия если вполне можно обойтись и без неё?... Не отрицаю существование способов реализации более правильных и менее косячных и ресурсоемких. Но!!! Эта функция работает с 2011го года и косяки выявились только сейчас(и то редкие и не значительные), по нагрузке/времени работы нареканий нет... По этому смысла менять принцип работы и рисковать появлениями других багов(в случае если что-то забыл/не учел), лично я не вижу... Итого: От блокировок решил отказаться - побоялся и сделал как описал выше - перевел в Inno и делаю рекурсию если не произошла вставка. function newPhonesGroup() { $minId = mysql_result(mysql_query("SELECT MIN(NULLIF(R1.groupid + 1, R2.groupid)) as mid FROM (SELECT groupid FROM phonesgroup UNION SELECT 0) R1 LEFT OUTER JOIN phonesgroup R2 ON R2.groupid = (R1.groupid + 1) OR R2.groupid IS NULL"),0,'mid'); if (!$minId || !mysql_query("insert into phonesgroup(groupid,cdate)values($minId,'".date('Y-m-d [H:i:s]')."')")) { sleep(1); return newPhonesGroup(); } return $minId; } Пока косяков не выявлено - как будут - обещаю Вас поставить в известность и быть более внимательным к вашим советам! =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 09:53 |
|
||
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
hatedО! Оживление =) В общем, не буду привязываться к цитатам отвечу в общем. Да скорее всего я и погорячился - может не месяц, может даже не два и не год. Но!!! Это еще хуже, сейчас я знаю об этом узком месте и пытаюсь его оптимизировать, но забей я на это - в один прекрасный момент получаю баг, потери времени на исправление, потере на возмещение убытков простоя и т.д. Сейчас у нас 8 едентичных баз(разные города), кто знает сколько их будет через год-два... И уж тем более потом угадай в какой базе кончатся айдишники... Зачем эта бомба замедленного действия если вполне можно обойтись и без неё?... Не отрицаю существование способов реализации более правильных и менее косячных и ресурсоемких. Но!!! Эта функция работает с 2011го года и косяки выявились только сейчас(и то редкие и не значительные), по нагрузке/времени работы нареканий нет... По этому смысла менять принцип работы и рисковать появлениями других багов(в случае если что-то забыл/не учел), лично я не вижу... Итого: От блокировок решил отказаться - побоялся и сделал как описал выше - перевел в Inno и делаю рекурсию если не произошла вставка. function newPhonesGroup() { $minId = mysql_result(mysql_query("SELECT MIN(NULLIF(R1.groupid + 1, R2.groupid)) as mid FROM (SELECT groupid FROM phonesgroup UNION SELECT 0) R1 LEFT OUTER JOIN phonesgroup R2 ON R2.groupid = (R1.groupid + 1) OR R2.groupid IS NULL"),0,'mid'); if (!$minId || !mysql_query("insert into phonesgroup(groupid,cdate)values($minId,'".date('Y-m-d [H:i:s]')."')")) { sleep(1); return newPhonesGroup(); } return $minId; } Пока косяков не выявлено - как будут - обещаю Вас поставить в известность и быть более внимательным к вашим советам! =) дык что косяков пока не было?! Будут! пышли студент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 10:02 |
|
||
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
alex564657498765453дык что косяков пока не было?! Будут! пышли студент. Сплюньте! Ну их нафиг... =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 11:27 |
|
||
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, alex564657498765453 с)и что, религия запрещает перейти на другой тип? ну, во-первых, в общем-то да, запрещает, особенно если не знаешь, кто, как и для чего еще использует базу во вторых, с ограничениями интересней, а SMALLINT я просто так предположила, надо же с чего-то начать =) alex564657498765453 а)вы не поняли мысли.... зачем акцент на минимальном айди, и как пример, второй процес сразу взял себе 11, а первый 10 потом- они искали не минимальный...но ну может и не поняла, просто минимальный/максимальный найти легче (имхо). поэтому было бы интересно посмотреть, как можно найти 11-й, 125-й alex564657498765453 б)как два пальца об асфальт.даже без джоина,...сдесь на форуме уже были даже готовые примеры через переменные ну вот я и говорю, что было бы интересно посмотреть код. тем более, что для вас это настолько просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 12:00 |
|
||
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
hated, используй mysqli =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 12:03 |
|
||
|
Запрет одновременного выполнения
|
|||
|---|---|---|---|
|
#18+
hatedЗачем эта бомба замедленного действия если вполне можно обойтись и без неё?... как раз текущая реализация -- бомба. то, что скрипт работает с 2011 года не показатель. в случае проблем тщательно скрывай свой адрес от тех, кто будет поддерживать систему после тебя. ты занимаешься хренью, а не оптимизацией, меняй эту кривизну пока не поздно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2015, 15:15 |
|
||
|
|

start [/forum/topic.php?fid=23&startmsg=38940910&tid=1461829]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 536ms |

| 0 / 0 |
