No reason for the varchar so I guess I can change it to char if that will
help.
I have tried many different settings in the my.cnf file for inno db but have
seen little improvement.  Any thoughts there?

-----Original Message-----
From: Brent Baisley [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 11, 2003 4:02 PM
To: Michael Shuler
Cc: [EMAIL PROTECTED]
Subject: Re: Dirt Slow Query On Datetime Range


The first thing I noticed is that you are using varchar instead of 
char, why? Unless you have a variable length field like text or blob, 
you can and should use char.
As far as I know, you can't "optimize" InnoDB tables, but you can 
optimize MyISAM using the analyze command as I recall.

Next, have you played with your my.cnf settings? I assume you have, but 
it's a question that must be asked.


On Tuesday, November 11, 2003, at 04:44 PM, Michael Shuler wrote:

> OK, I give up. To anyone out there who can help me, please explain why
> this
> query runs slower than dirt.  The table has about 1,300,000 records in 
> it,
> which is not supposed to be a big deal for MySQL to deal with.  I have 
> tried
> it with MyISAM and then changed it to InnoDB which made it even slower 
> but
> at least the rest of my queries can continue and not be blocked.  This 
> query
> takes 30 seconds on a dual 1GHz 1GB RAM RedHat 9 PC.  In my opinion it
> should be 10x faster than that at the very least.
>
> This table is used for RADIUS accounting, all I want to do is find the
> peak
> utilization port utilization for the day.  The only way I have figured 
> out
> how to do this is take samples every 5 min and store the highest one.  
> Here
> is the table:
>
> CREATE TABLE `ServiceRADIUSAccounting` (
>   `RadAcctId` bigint(21) NOT NULL auto_increment,
>   `AcctSessionId` varchar(32) NOT NULL default '',
>   `AcctUniqueId` varchar(32) NOT NULL default '',
>   `UserName` varchar(64) NOT NULL default '',
>   `Realm` varchar(64) default '',
>   `NASIPAddress` varchar(15) NOT NULL default '',
>   `NASPortId` int(12) default NULL,
>   `NASPortType` varchar(32) default NULL,
>   `AcctStartTime` datetime NOT NULL default '0000-00-00 00:00:00',
>   `AcctStopTime` datetime NOT NULL default '0000-00-00 00:00:00',
>   `AcctSessionTime` int(12) default NULL,
>   `AcctAuthentic` varchar(32) default NULL,
>   `ConnectInfo_start` varchar(32) default NULL,
>   `ConnectInfo_stop` varchar(32) default NULL,
>   `XmitSpeed` varchar(6) default NULL,
>   `RecvSpeed` varchar(6) default NULL,
>   `AcctInputOctets` int(12) default NULL,
>   `AcctOutputOctets` int(12) default NULL,
>   `CalledStationId` varchar(11) NOT NULL default '',
>   `CallingStationId` varchar(11) NOT NULL default '',
>   `AcctTerminateCause` varchar(32) NOT NULL default '',
>   `ServiceType` varchar(32) default NULL,
>   `FramedProtocol` varchar(32) default NULL,
>   `FramedIPAddress` varchar(15) NOT NULL default '',
>   `AcctStartDelay` int(12) default NULL,
>   `AcctStopDelay` int(12) default NULL,
>   PRIMARY KEY  (`RadAcctId`),
>   KEY `UserName` (`UserName`),
>   KEY `FramedIPAddress` (`FramedIPAddress`),
>   KEY `AcctSessionId` (`AcctSessionId`),
>   KEY `AcctUniqueId` (`AcctUniqueId`),
>   KEY `AcctStartTime` (`AcctStartTime`),
>   KEY `AcctStopTime` (`AcctStopTime`),
>   KEY `NASIPAddress` (`NASIPAddress`),
>   KEY `Realm` (`Realm`),
>   KEY `RealmAndStart` (`Realm`,`AcctStartTime`)
> ) TYPE=InnoDB AUTO_INCREMENT=4468368 ;
>
>
> And here is the query:
>
> SELECT COUNT(*) AS CallCount FROM ServiceRADIUSAccounting WHERE (Realm
> =
> 'testreal.com') AND (AcctStartTime <= '2003-11-11 15:30:00' AND 
> AcctStopTime
>> = '2003-11-11 15:30:00')
>
> When I do an explain I get:
> table                    type  possible_keys
> key           key_len  ref   rows  Extra
> ServiceRADIUSAccounting  ref
> AcctStartTime,AcctStopTime,Realm,RealmAndStart  RealmAndStart 65       
> const
> 73394 Using where
>
> Perhapse my InnoDB file needs to be "optimized" if such a thing
> exists.  I
> don't know why this takes so long but I can definitly use some help.
> Thanks!
>
> ----------------------------------------
>
> Michael Shuler
>
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    
> http://lists.mysql.com/[EMAIL PROTECTED]
>
>
>
-- 
Brent Baisley
Systems Architect
Landover Associates, Inc.
Search & Advisory Services for Advanced Technology Environments
p: 212.759.6400/800.759.0577




--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to