siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009
TOVSTUN:
А зачем ему id сделать PRIMARY KEY если он итак уже UNIQUE KEY что изменится ?

http://www.google.ru/search?client=opera&q=PRIMARY+vs+UNIQUE+KEY+mysql&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest

gr1nader:
старый дамп кидал, поправил на новый для ясности.

Кроме счетчика ничего не изменилось.

active varchar(10) DEFAULT NULL - это просто габелла. Зачем вам варчар, если используете 1-0? tinyint(1)

На username поставить индекс.

id сделать PRIMARY KEY

Без индекса на username... 100K записей... Зачем так жить?!

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

100K строк и автоинкремент на 40K, это как?

Почему UNIQUE а не PRIMARY?

Структуру таблицы ждем в студию.

Еще как вариант создать временную таблицу, загнать туда данные и сравнивать с ней.

Вот интересно что за файл то?

Zion-i2:
но вы тоже уже немного лишнего пишете, а точнее повторяетесь, я уже понял, что вы считаете, что нужно заплатить спамеру.

Не заплатить (хотя почему нет, если он обладает информацией о уязвимостях на сайте и их действительно можно эксплуатировать) а нанять нормального программиста. Тот код который вы привели просто нет слов как его назвать. У вас же вроде масштабный региональный проект? Это я на своем г-варезе могу бросить вызов кулхацкерам "кто круче", а у вас имхо проект не того уровня.

ibf_pfields_content. id у field_id смотрим в админцентре на странице доп полей. Только смотрите не удалите строку, она идет привязкой к основной.

Подписи кроме всего еще и кешируется ibf_content_cache_sigs

ПС. vasyakrn, вы всерьез думайте что удалением "О себе" освободите много места?.. Сколько же тогда у вас база занимает?

e-art:
не обязательно обнулять всех. обнулить надо только тех, у кого был activ=1. может быть это будет быстрее чем пробегать по всем строкам и сравнивать id с активным.

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

gr1nader:
страшнее когда в базе у всех "0" в активе а потом по возрастающей.

Покажите ради интереса структуру таблицы.

И хорошо было бы увидеть профилинг запроса UPDATE users SET `activ` = 0;

---------- Добавлено 11.06.2013 в 22:32 ----------

gr1nader:
всетаки склоняюсь к решению моему втором


mysql_query('UPDATE users SET activ=0');

$names = array_chunk($good, 100);
foreach($names as $nam)
{
mysql_query('UPDATE users SET activ=1 WHERE username IN ("'.implode('", "', $nam).'"');
}

Сколько пользователей обычно онлайн? Может есть смысл разбить на подгруппы и делать IN-ом в несколько запросов?

Всего: 6568