select * from firewall_traffic where date='2008-07-16' and src in ( select addr from user_activity where date='2008-07-16' and addr != '' and addr != '-' and user='testuser' group by addr );
select * from firewall_traffic where date='2008-07-16' and src = any( select addr from user_activity where date='2008-07-16' and addr != '' and addr != '-' and user='testuser' group by addr );
select * from firewall_traffic inner (or straight or just plain) join user_activity on firewall_traffic.src = user_activity.addr
where date='2008-07-16' and user='testuser'
ASKER
ASKER
create temporary table usr select user,addr from user_activity where date='2008-07-16' and user = 'testuser' and addr != '' and addr != '-' group by user,addr;
And one from the firewall log
create temporary table fw select * from firewall_traffic where date='2008-07-16';
select user,dstname,count(*) from usr join fw on usr.addr = fw.src where group by user,dstname;
Databases are organized collections of data, most commonly accessed through management systems including schemas, tables, queries and processes that allow users to enter and manipulate the information or utilize it in other fashions, such as with web applications or for reporting purposes.
TRUSTED BY
ASKER
Might it just be the size of the table? To be honest, I've never worked with tables more than 15,000 rows or so before. The server should be plenty powerful enough - it's got 4 gigs of RAM and two dual core 3GHz processors.
Here's the create table results:
CREATE TABLE `firewall_traffic` (
`host` varchar(32) default NULL,
`date` date default NULL,
`time` time default NULL,
`src` varchar(20) default NULL,
`dst` varchar(20) default NULL,
`dstname` varchar(50) default NULL,
`msg` text,
`seq` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`seq`),
KEY `host` (`host`),
KEY `date` (`date`,`time`),
KEY `src` (`src`,`dst`),
KEY `dstname` (`dstname`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `user_activity` (
`host` varchar(32) default NULL,
`date` date default NULL,
`time` time default NULL,
`evtlog` varchar(32) default NULL,
`evtid` int(11) default NULL,
`source` varchar(32) default NULL,
`user` varchar(50) default NULL,
`type` varchar(32) default NULL,
`category` varchar(32) default NULL,
`msg` text,
`addr` varchar(20) default NULL,
`seq` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`seq`),
KEY `host` (`host`),
KEY `date` (`date`,`time`),
KEY `evtlog` (`evtlog`),
KEY `evtid` (`evtid`),
KEY `source` (`source`),
KEY `type` (`type`),
KEY `category` (`category`),
KEY `user` (`user`),
KEY `addr` (`addr`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
And my.cnf:
[mysqld]
datadir=/data
socket=/var/lib/mysql/mysq
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.
pid-file=/var/run/mysqld/m