The count happens after the where on an index - it should just count the
appropriate index rows without looking at the values. Worth benchmarking on
your dataset, though.
On Thu, Apr 22, 2010 at 1:22 PM, Aveek Misra <aveekm@stripped> wrote:
> How can count(*) in an InnoDB table be faster than MAX() considering that
> the former needs to do a table scan and the latter can use an index if
> correctly used? My code starts the sequence from 1.
>
>
> Thanks
> Aveek
>
> Johan De Meersman wrote:
>
>> Kudos for managing to drag up such an obscure piece of functionality :-) I
>> can see where it would be useful, though.
>>
>> As to your question, though: given that that page indicates that it will
>> reuse deleted sequence numbers, I think your best bet would be select @id :=
>> count(*)+1 from table where cluster='clusterA' AND file='fileA' ; - should
>> be slightly faster than a max(), I think. That in a trigger on your table
>> should emulate the behaviour pretty closely.
>>
>> Am I mistaken, or does your code try to start from sequence 0 ?
>>
>> --
>> Bier met grenadyn
>> Is als mosterd by den wyn
>> Sy die't drinkt, is eene kwezel
>> Hy die't drinkt, is ras een ezel
>>
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql> To unsubscribe: http://lists.mysql.com/mysql?unsub=1>
>
--
Bier met grenadyn
Is als mosterd by den wyn
Sy die't drinkt, is eene kwezel
Hy die't drinkt, is ras een ezel

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.