Hi Ananda,

The problem is the one date is stored as a unix time stamp, and the other as
a XXXX-XX-XX XX:XX:XX format :/. Can MySQL just match it without converting?

I have dropped the 2nd conversions on the WHERE part of the query as I can
format that before executing to look correct.

It's taking 4.5 seconds to execute when limiting to 10, the logs are
inserted every 5 mins and when you select an entire month you can imagine
how long it would take :/

Thanks for the help so far,
Darryl

On Fri, Jun 27, 2008 at 6:13 PM, Ananda Kumar <[EMAIL PROTECTED]> wrote:

> Also since mysql give date in Y-M-D you might want to remove the
> "from_unixtime" and "date_format" formating functions
>
> On 6/27/08, Darryl Steyn <[EMAIL PROTECTED]> wrote:
>
>> Hi Jörg,
>>
>> I have applied the changes you have suggested and still no joy :(
>>
>> I will carry on playing around with it to see if there is no way else for
>> me
>> to simplify it (maybe selecting only every 30mins or so).
>>
>> Thanks for the help,
>> Darryl
>>
>> On Fri, Jun 27, 2008 at 5:28 PM, Joerg Bruehe <[EMAIL PROTECTED]> wrote:
>>
>> > Hi Darryl, all,
>> >
>> >
>> > Darryl Steyn wrote:
>> >
>> >> Hi Ananda,
>> >>
>> >> The query is for reporting purposes and I would like to include a date
>> >> range
>> >> for the user to report on. That part of the query has to be there for
>> it
>> >> to
>> >> work nicely.
>> >>
>> >> Regards,
>> >> Darryl
>> >>
>> >> On Fri, Jun 27, 2008 at 4:25 PM, Ananda Kumar <[EMAIL PROTECTED]>
>> wrote:
>> >>
>> >>  Hi Darryl,
>> >>> Indexing looks fine, but what are ur trying to achive using this
>> >>> conditions
>> >>>
>> >>> "cache.server.tstamp > 0) AND
>> >>> ((date_format(cache.server.tstamp,'%Y-%m-%d') BETWEEN "2008-05-31" AND
>> >>> "2008-06-10" ))"
>> >>>
>> >>>
>> > IMO, it might help if you could code your condition(s) such that the
>> format
>> > conversion is applied only once (on the constant values),
>> > and not on each row.
>> >
>> > With your current query, each row's "tstamp" value must be converted to
>> > evaluate the condition.
>> > If you would convert the values "2008-05-31" and "2008-06-10" to the
>> format
>> > of your column, you would avoid that (and so reduce load):
>> >
>> >   cache.server.tstamp > 0) AND
>> >  (cache.server.tstamp BETWEEN  conversion ("2008-05-31 00:00:00") AND
>> >                                conversion ("2008-06-10 23:59:59") )
>> >
>> > The correct "conversion" depends on your column's data type.
>> >
>> > Also, your condition "cache.server.tstamp > 0" should not be necessary,
>> as
>> > the BETWEEN will also ensure that.
>> >
>> >
>> > HTH,
>> > Jörg
>> >
>> > --
>> > Joerg Bruehe,  MySQL Build Team,  [EMAIL PROTECTED]
>> > Sun Microsystems GmbH,   Sonnenallee 1,   D-85551 Kirchheim-Heimstetten
>> > Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer
>> > Vorsitzender des Aufsichtsrates: Martin Haering     Muenchen: HRB161028
>> >
>> >
>>
>
>

Reply via email to