iopiop

Рейтинг
25
Регистрация
23.12.2010
edogs:
Во первых, не добавит, потому что апдейт таблицы на которую в этом же запросе делаешь селект - недопустим.
Во вторых, операцией сложения Вы прибили вообще информацию в хэшах.

1) это где нельзя, в MySQL?

2) операцией сложения добавил к каждой неуникальной строке 2 случайных цифры. или что вы имеете ввиду под "прибил" ?

---------- Добавлено в 18:31 ---------- Предыдущее сообщение было в 18:23 ----------

но вообще-то да, неправильно написал, он прибавит к каждой неуникальной :-(, а надо только к одной

ваш update, кстати, тем же болеет ;-)

вот так будет правильнее

insert into tm select max(id) from tabl group by hash having count(*)>1;
UPDATE list SET id = id + ROUND(100*RAND())
WHERE id IN (
SELECT id FROM list
GROUP BY id HAVING count(id) > 1)

добавит два случайных числа к id

MiladyX:


с позиции человека, который не шарит в jquery, а скачал скрипт часов и хочет его чуть поправить.

Мне кажется, тут не сложно поправить, если знать что :)
В переменную old_hours подставлять текущие часы не с компьютера посетителя, а например Вашингтонского времени.

1. Получить временнУю зону getTimezoneOffset()

2. Прибавить ее к текущему времени - получим UTC

3. Вашингтон, если мне не изменяет память, живет позади Лондона на 5 часов, значит добавляем -5 (ну или отнимаем 5), получаем время в Вашингтоне.

Не забываем только переводить все в миллисекунды - getTimezoneOffset возвращает в минутах (т.е. умножить на 60000 надо), 5 часов тоже перевести в миллисекунды нужно (умножить на 3600000).

Т.е. вместо строчки old.setTime(....... пишете

old.setTime(old.getTime() + old.getTimezoneOffset() * 60000 - 5 * 3600000);
Дикий пионер:
Просто это условие - с массивом - всегда будет true. В доке на php.net написано что массив всегда больше любого аргумента, кроме массива. Если сравниваются с массивом - то может оказаться меньше.

Он еще null может быть, если мне память не изменяет

Yeisk-Online:
Нет, я лично не пользуюсь услугами этого провайдера. Меня интересует, как заставить провайдера отказаться от этой дурацкой затеи - блокировать сайт? Ведь это, я так понимаю, не законно?

Вы правильно понимаете что это незаконно.

Есть два пути - задействовать закон или использовать прокси. Понятно, что второй путь существенно проще.

Если идти по первому пути, то совершенно неважно что прописано в договоре - если договор нарушает закон, то договор признается ничтожным. Понятно что провайдер может прописывать пункты о "технической невозможности" или другой подобный бред - а значит привлечение экспертов и прочий геморой. В идеальном мире дело конечно выигрывается, на практике... На практике зачастую достаточно грамотно составленное ( обязательно с помощью юриста) письмо к провайдеру - там тоже не дураки сидят.

С точки зрения провайдерского бизнеса - дешевле отказаться от проблемного клиента и пусть он мозги трахает конкурентам - тут pupseg прав.

---------- Добавлено в 10:39 ---------- Предыдущее сообщение было в 10:32 ----------

pupseg:

одно время, я - пользуясь своим служебным положением в те времена хотел сделать мир лучше и залочил торрентс.ру, порнолаб.нет, кучу других популярных порнушников, через заворот на captive portal сделал страничку - что мол - этот ресурс запрещен.. и т д...
стоооооолько дрочеров среди наших клиентов обнаружилось :))))

это вы напрасно, раньше эти пользователи удовлетворяли свои, гм, потребности перед монитором, а теперь на улицу вышли.

Да и вообще, не суди, да не судим будешь

LEOnidUKG:
А если мы сделаем так?

EXPLAIN SELECT * FROM `cms_brand` FORCE INDEX (trans) WHERE name!='abb' AND (trans!='abb' OR trans!='gewi')

То EXPLAIN нам выдаст, что используется наш ключик trans.

А если мы добавим ещё LIMIT 1, то вообще прелесть будет :)

конечно мы можем заставить использовать индекс. в этом случае мы сначала будем ходить по индексу, а потом пойдем за данными в таблицу, т.е. получим 2 IO операции вместо одной, но нам же не это нужно, правда?

суть в том, что в данном случае нет никаких преимуществ в использовании индекса по сравнению с table scan, а недостатки известны - дополнительное место под индекс, перестройка (а значит локи) индекса при вставке-удалении-апдейте.

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

а) индекс кластерный - т.е. данные хранятся физически вместе с индексом

б) таблица достаточно широкая - может получиться что шагать по индексу дешевле (в терминах IO) чем шагать по таблице

в) в селекте выбирается только те колонки, из которых состоит индекс

Zaqwr:
vm.zone_reclaim_mode = 0 было 1

1) стала ли использоваться вся память?

2) уменьшилась ли нагрузка на диски?

вроде бы эти проблемы озвучивались в первом посте

Lemurian:
Почему когда удаленный компьютер изменяет текст на кнопке, в это время локальный пользователь не может по ней кликнуть? Форма просто висит, а когда жмешь на кнопку, ничего не происходит.

Как я понял, поток формы просто занят одной задачей и вторую он выполнить не в состоянии. Может подскажите, как сделать очередь заданий (для формы)?

поток висит и ждет пока удаленный компьютер что-то ему скажет.

два варианта

а) использовать неблокирующие сокеты

б) создать отдельный поток для слушания удаленного компьютера

netwind:
а зачем ? денормализация она всякая бывает. и смысл в ней иногда тоже есть.

нельзя ли поподробнее отсюда?

при чем здесь денормализация?

на вопрос "зачем" уже вроде ответили - чтобы извращения не писать в виде "substring(substring("

LEOnidUKG:
лучше жувать иногда :)

Почитайте, что такое индексы. От запроса это не зависит.

действительно, иногда лучше жувать.

я вот проверил, при "!=" составной индекс не используется. такой же запрос, но с "=" - используется.

если немножко подумать о том, как устроены индексы и как по ним поиск идет, то можно догадаться почему именно так, а не иначе.

---------- Добавлено в 23:42 ---------- Предыдущее сообщение было в 23:40 ----------

Dreammaker:
Если мне не изменяет память, то конструкция IN или её аналог OR ... OR
... OR .... проходит аналогично отдельным запросам, а значит и составной индекс будет задействоваться. Но я сделал оговорку, что нужно проверить EXPLAIN. Ибо "чуйка" подсказывает, что должно работать, но всё же проверка не будет лишней, ибо я уже какое-то время больше "по руководящей линии", чем собственно програмлю, мог уже что-то и забыть.

да не, тут не про IN/OR - это синтетический сахар, тут про "!=" vs "="

Всего: 259