нужно удалить из базы данных пустые значения.

Статус
В этой теме нельзя размещать новые ответы.

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
доброго всем дня.
Подскажите пожалуйста как из таблоицы .
удалить все данные которые имеют значение 0 ?


в общем есть 3 поля

поле 1 имеет дату проверки дата в виде 1237544886
поле 2 имеет значение 0 и до бесконечности
поле 3 имеет значение 0 до 10


мне нужно сделать на PHP
запрос чтобы удалить в цикле по 100 строк за один запрос, дабы не нагружать мускул

Удаление делать если поле 1 не пустое тоесть имеет произвольное значение 1237544886 (
Это нужно для того чтоб знать что данные уже проверены.
Если данные не проверены еще а всего лишь добавлены в базу то
поле будет пустое.)



поле 2 имеет значение 0
и
поле 3 имеет значение 0

Если одно из этих полецй имеет не 0 тогда оставлять
строку.

Удалять строго если поле 1 не пустое
поле 2 меньше 10
поле 3 меньше 1


Если кто поможет буду очень благодарен.
Спасибо.
 
Как я понял, вариантов для удаления 2?

Насчет удаления по 100 записей - не парься, все нормально.

1.
DELETE FROM table WHERE f1 > 0 AND f2 =0 AND f3 = 0

2.
DELETE FROM table WHERE CHAR_LENGTH(f1)>0 AND f2<10 AND f3 <1

Все это можно в один запрос объединить, если нужно.
 
Если хочешь ограничение удаления 100 записей за раз, то добавь в конце запроса limit 100.
На запросах от t0os, это будет:
DELETE FROM table WHERE f1 > 0 AND f2 =0 AND f3 = 0 LIMIT 100
DELETE FROM table WHERE CHAR_LENGTH(f1)>0 AND f2<10 AND f3 <1 LIMIT 100
 
Как я понял, вариантов для удаления 2?

Насчет удаления по 100 записей - не парься, все нормально.

тоесть нагрузки не будет если тереть по 500 за один запрос?
хочу на крон это реализовать все. Ато база набиваеться мусором
 
асс, будет хуже, если тереть по 100 за 5 запросов ;)
нет, от удаления 500 за раз нагрузки не будет.
 
тоесть нагрузки не будет если тереть по 500 за один запрос?
хочу на крон это реализовать все. Ато база набиваеться мусором

Удаляют порциями записи если используют транзакции, а тем более 500 записей для мускула раз плюнуть. Удаляй одним махом и не парся.
 
А кто вам сказал что 100 -500 строк удаляя создаст нагрузку на БД ?
 
А кто вам сказал что 100 -500 строк удаляя создаст нагрузку на БД ?

это не важно если сайт не особо популярный и онлайн пользователей до 10000...

напишу как работает мускул: перед выполнением любого запроса он блокирует таблицу полностью, и все остальные пхп-скрипты будут ожидать окончания удаления 500 записей (запроса), то есть висеть в памяти, нагружая процессор и память, другое дело если пользователей 1000 а не 1000000, а если табличка большая и содержит много инфы и используется почти на каждой страничке сайта..
 
это не важно если сайт не особо популярный и онлайн пользователей до 10000...

напишу как работает мускул: перед выполнением любого запроса он блокирует таблицу полностью, и все остальные пхп-скрипты будут ожидать окончания удаления 500 записей (запроса), то есть висеть в памяти, нагружая процессор и память, другое дело если пользователей 1000 а не 1000000, а если табличка большая и содержит много инфы и используется почти на каждой страничке сайта..

Ну это смотря какой тип таблицы MyISAM или InnoDB
InnoDB - если правильно использовать не лочит.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху