我使用3臺下面這裏列出:MySQL的比較需要太多的時間
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 IM從PHP這樣做從表user
獲取所有entrys,全部來自blacklist_global
。 問題是,在黑名單我可以輸入*@heloooo.de所以我想刪除域helooo.de每個電子郵件,但它非常非常緩慢。
只有在mysql
才能做到嗎?沒有php
?或任何提示,這樣做更快?
問題是,我不得不檢查的電子郵件地址,我想從用戶刪除所有,如果user.email是發EMAIL:[email protected]黑名單.email,但在blacklist.email可能是一個像*@bla.de通配符,所以我想從用戶刪除電子郵件像blaa .. – Roby
@Roby我添加了一個基於您的評論的例子。 – datasage
thx爲快速重播,但我不得不檢查角色是否喜歡@是*然後像電子郵件LIKE'%@somedomain.com那樣做,如果不是隻檢查完整的電子郵件,你明白我的意思嗎? – Roby