Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Удаление с условием в InnoDB. Как лучше? (SilentImp) 20/01/2010 - 13:35:02



From: SilentImp - 20/01/2010 - 13:35:02
Subject:Удаление с условием в InnoDB. Как лучше?
-----------------
Приятного времени суток.

Есть таблица InnoDB, содержащая адреса электронной почты пользователя.
Пользователь может удалять адреса в учетной записи, при условии что их количество больше одного.

Сейчас делается в 2 запроса:

SELECT COUNT(*) AS 'email_number' FROM email WHERE user_id = 3

В php скрипте проверяется email_number и если он >1 то выполняется второй запрос

DELETE * FROM email WHERE id = 1

В связи с этим есть 2 вопроса:
1. Может быть быстрее для таблицы InnoDB первый запрос изменить на:

SELECT email FROM email WHERE user_id = 2
И потом посмотреть количество полученных строк с помощью mysql_num_rows в скрипте?

2. Можно ли сделать такое удаление (если больше 1ой записи с адресом электронной почты) одним запросом. И даст ли это выиграшь в скорости или наоборот.

Сама таблица:
CREATE TABLE email(
email VARCHAR(255) NOT NULL,
user_id INT NOT NULL,
UNIQUE KEY email (email),
id INT AUTO_INCREMENT PRIMARY KEY,
FOREIGN KEY (user_id) REFERENCES account (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARACTER SET utf8

Подскажите пожалуйста, как лучше сделать.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36673



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |