【发布时间】:2011-09-23 08:07:54
【问题描述】:
我正在使用下面列出的 3 个表:
CREATE TABLE `user` (
`uid` int(10) NOT NULL AUTO_INCREMENT,
`kid` int(3) NOT NULL,
`Email` varchar(255) DEFAULT NULL,
`del` tinyint(1) DEFAULT '0',
PRIMARY KEY (`uid`),
KEY `kid` (`kid`),
KEY `email` (`Email`)
) ENGINE=MyISA
和
CREATE TABLE `blacklist_global` (
`bgid` int(10) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`kid` int(3) DEFAULT NULL,
`stmp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`bgid`),
UNIQUE KEY `email` (`email`),
KEY `kid` (`kid`)
) ENGINE=MyISAM
和
CREATE TABLE `verteiler_user` (
`vuid` int(10) NOT NULL AUTO_INCREMENT,
`uid` int(3) NOT NULL,
`vid` int(3) NOT NULL,
`del` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`vuid`),
KEY `uid` (`uid`)
) ENGINE=MyISAM
表user 中的每个条目也在表verteiler_user 中。现在我想delete来自用户where user.uid = verteiler_user.uid and verteiler_user.vid=XX and user.uid = XXX的每个条目
所以 atm 我从 php 获取所有来自表 user 的条目,全部来自 blacklist_global。
问题是,在黑名单中我可以输入 *@heloooo.de 所以我想删除域 helooo.de 中的每封电子邮件,但它非常非常慢。
只能在mysql 中进行吗?没有php?或任何提示,这样做更快?
【问题讨论】: