MySQL Forums
Forum List  »  General

Large table searching
Posted by: James Nunnerley
Date: March 07, 2005 11:06AM

I've got a fairly large table, currently 1.5 million records, but growing, and have some serious performance issues when it searches.

I've indexed all the appropriate fields, but it's still taking up to 40+ secs to carry out a search.

The table structure is as follows:
CREATE TABLE `syslog` (
`ID` int(100) NOT NULL auto_increment, `unixtime` int(20) NOT NULL default
'0', `date` date default NULL, `time` time default NULL, `device_id`
varchar(255) default NULL, `log_id` varchar(255) default NULL, `type`
varchar(255) default NULL, `subtype` varchar(255) default NULL, `pri`
varchar(255) default NULL, `SN` varchar(255) default NULL, `duration`
varchar(255) default NULL, `policyid` varchar(255) default NULL, `proto`
varchar(255) default NULL, `service` varchar(255) default NULL, `status`
varchar(255) default NULL, `src` varchar(255) default NULL, `srcname`
varchar(255) default NULL, `dst` varchar(255) default NULL, `dstname`
varchar(255) default NULL, `src_int` varchar(255) default NULL, `dst_int`
varchar(255) default NULL, `sent` varchar(255) default NULL, `rcvd`
varchar(255) default NULL, `sent_pkt` varchar(255) default NULL, `rcvd_pkt`
varchar(255) default NULL, `src_port` varchar(255) default NULL, `dst_port`
varchar(255) default NULL, `vpn` varchar(255) default NULL, `tran_ip`
varchar(255) default NULL, `tran_port` varchar(255) default NULL, `user`
varchar(255) NOT NULL default '', `ui` varchar(255) NOT NULL default '',
`action` varchar(255) NOT NULL default '', `reason` varchar(255) NOT NULL
default '', `msg` varchar(255) NOT NULL default '', `vd` varchar(255) NOT
NULL default '', `hostname` varchar(255) NOT NULL default '', `module`
varchar(255) NOT NULL default '', `submodule` varchar(255) NOT NULL default
'', `virdb` varchar(255) NOT NULL default '', `idsdb` varchar(255) NOT NULL
default '', `libav` varchar(255) NOT NULL default '', `aven` varchar(255) NOT
NULL default '', `imap` varchar(255) NOT NULL default '', `smtp` varchar(255)
NOT NULL default '', `pop3` varchar(255) NOT NULL default '', `http`
varchar(255) NOT NULL default '', `ftp` varchar(255) NOT NULL default '',
`fcni` varchar(255) NOT NULL default '', `fdni` varchar(255) NOT NULL default
'', `idsmn` varchar(255) NOT NULL default '', `idssn` varchar(255) NOT NULL
default '', `rbldb` varchar(255) NOT NULL default '', `seq` varchar(255) NOT
NULL default '', `old_sintf` varchar(255) NOT NULL default '', `old_dintf`
varchar(255) NOT NULL default '', `old_saddr` varchar(255) NOT NULL default
'', `old_daddr` varchar(255) NOT NULL default '', `old_schd` varchar(255) NOT
NULL default '', `old_svr` varchar(255) NOT NULL default '', `old_act`
varchar(255) NOT NULL default '', `old_nat` varchar(255) NOT NULL default '',
`old_log` varchar(255) NOT NULL default '', `new_sintf` varchar(255) NOT NULL
default '', `new_dintf` varchar(255) NOT NULL default '', `new_saddr`
varchar(255) NOT NULL default '', `new_daddr` varchar(255) NOT NULL default
'', `new_schd` varchar(255) NOT NULL default '', `new_svr` varchar(255) NOT
NULL default '', `new_act` varchar(255) NOT NULL default '', `new_nat`
varchar(255) NOT NULL default '', `new_log` varchar(255) NOT NULL default '',
`sport` varchar(255) NOT NULL default '', `dport` varchar(255) NOT NULL default
'', `cat` varchar(255) NOT NULL default '', `cat_desc` varchar(255) NOT NULL
default '', `url` varchar(255) NOT NULL default '', `from` varchar(255) NOT
NULL default '', `to` varchar(255) NOT NULL default '', `file` varchar(255)
NOT NULL default '', `virus` varchar(255) NOT NULL default '', `intf`
varchar(255) NOT NULL default '', `attack_id` varchar(255) NOT NULL default
'', `dir_disp` varchar(255) NOT NULL default '', `tran_disp` varchar(255) NOT
NULL default '', `name` varchar(255) NOT NULL default '', `local` varchar(255)
NOT NULL default '', `remote` varchar(255) NOT NULL default '', `assigned`
varchar(255) NOT NULL default '', `stat` varchar(255) NOT NULL default '',
`loc_ip` varchar(255) NOT NULL default '', `loc_port` varchar(255) NOT NULL
default '', `rem_ip` varchar(255) NOT NULL default '', `rem_port`
varchar(255) NOT NULL default '', `out_if` varchar(255) NOT NULL default '',
`vpn_tunnel` varchar(255) NOT NULL default '', `init` varchar(255) NOT NULL
default '', `mode` varchar(255) NOT NULL default '', `stage` varchar(255) NOT
NULL default '', `dir` varchar(255) NOT NULL default '', `spi` varchar(255)
NOT NULL default '', `old_status` varchar(255) NOT NULL default '',
`new_status` varchar(255) NOT NULL default '', `passwd` varchar(255) NOT NULL
default '', `sintf` varchar(255) NOT NULL default '', `dintf` varchar(255)
NOT NULL default '', `saddr` varchar(255) NOT NULL default '', `daddr`
varchar(255) NOT NULL default '', `schd` varchar(255) NOT NULL default '',
`svr` varchar(255) NOT NULL default '', `act` varchar(255) NOT NULL default
'', `nat` varchar(255) NOT NULL default '', `log` varchar(255) NOT NULL
default '', `in_spi` varchar(255) NOT NULL default '',
`out_spi` varchar(255) NOT NULL default '', `error` varchar(255) NOT NULL
default '', `seqno` varchar(255) NOT NULL default '', `field` varchar(255)
NOT NULL default '', `old` varchar(255) NOT NULL default '', `new`
varchar(255) NOT NULL default '', `gateway` varchar(255) NOT NULL default '',
`interface` varchar(255) NOT NULL default '', `old_device` varchar(255) NOT
NULL default '', `old_distance` varchar(255) NOT NULL default '', `old_dst`
varchar(255) NOT NULL default '', `new_device` varchar(255) NOT NULL default
'', `new_distance` varchar(255) NOT NULL default '', `new_dst` varchar(255)
NOT NULL default '', `device` varchar(255) NOT NULL default '', `distance`
varchar(255) NOT NULL default '', `icmp_id` varchar(255) NOT NULL default '',
`icmp_type` varchar(255) NOT NULL default '', `icmp_code` varchar(255) NOT NULL
default '',
PRIMARY KEY (`ID`), KEY `unixtime` (`unixtime`), KEY `subtype` (`subtype`),
KEY `type` (`type`), KEY `src` (`src`), KEY `dst` (`dst`), KEY `dst_port`
(`dst_port`), KEY `src_port` (`src_port`), KEY `srcname` (`srcname`))
TYPE=MyISAM AUTO_INCREMENT=1481721 ;

Can anyone suggest how a simple search:
select unixtime, type, subtype, src, dst, msg, pri from syslog where
type='ips' ORDER BY unixtime DESC LIMIT 10
... can be improved to bo better than 40 secs!

Cheers
James

Options: ReplyQuote


Subject
Written By
Posted
Large table searching
March 07, 2005 11:06AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.