[Phpmyadmin-devel] Innodb and row exact count

Marc Delisle marc at infomarc.info
Mon Jul 29 12:52:13 CEST 2013


Le 2013-07-27 08:20, Marc Delisle a écrit :
> Le 2013-07-27 07:25, Madhura Jayaratne a écrit :
>>
>>
>>
>> On Sat, Jul 27, 2013 at 4:36 PM, Marc Delisle <marc at infomarc.info
>> <mailto:marc at infomarc.info>> wrote:
>>
>>      Le 2013-07-27 07:04, Marc Delisle a écrit :
>>       > Le 2013-07-27 07:02, Madhura Jayaratne a écrit :
>>       >>
>>       >>
>>       >>
>>       >> On Thu, Jul 25, 2013 at 1:39 AM, Marc Delisle
>>      <marc at infomarc.info <mailto:marc at infomarc.info>
>>       >> <mailto:marc at infomarc.info <mailto:marc at infomarc.info>>> wrote:
>>       >>
>>       >>      Le 2013-06-12 17:04, Marc Delisle a écrit :
>>       >>       > Le 2013-06-12 03:23, Michal Čihař a écrit :
>>       >>       >> Hi
>>       >>       >>
>>       >>       >> Dne Tue, 11 Jun 2013 13:20:44 -0400
>>       >>       >> Marc Delisle <marc at infomarc.info
>>      <mailto:marc at infomarc.info> <mailto:marc at infomarc.info
>>      <mailto:marc at infomarc.info>>>
>>       >>      napsal(a):
>>       >>       >>
>>       >>       >>> I don't find a winning solution so I'm seeking for
>>      advice. In
>>       >>      this bug
>>       >>       >>> report [0], we see that it's annoying to have
>>      incorrect page
>>       >>      navigation
>>       >>       >>> (page selector and arrows) for InnoDB.
>>       >>       >>>
>>       >>       >>> However, when I apply my proposed patch (which forces
>>      an exact
>>       >>      count in
>>       >>       >>> sql.php), I see delays for larger InnoDB tables.
>>       >>       >>>
>>       >>       >>> For example, on MySQL 5.5.31, the first time I browse
>>      a table
>>       >>      having one
>>       >>       >>> million rows, I wait for 9 seconds. I tried with 0.5
>>      million
>>       >>      and it was
>>       >>       >>> about 5 seconds. A few minutes afterwards, even after
>>      closing the
>>       >>       >>> browser, my big table starts to display in two seconds.
>>       >>       >>>
>>       >>       >>> I tend to find these delays acceptable and I propose
>>      to apply
>>       >>      my patch.
>>       >>       >>
>>       >>       >> I agree this is acceptable and agree with the patch for
>>      4.0.4.
>>       >>       >>
>>       >>       >> For 4.1 I'd go even further - drop MaxExactCount and
>>      use only
>>       >>      not exact
>>       >>       >> counts on overview pages and count properly when browsing.
>>       >>       >
>>       >>       > Thanks, I'll have a look at this suggestion for 4.1.
>>       >>       >
>>       >>       >
>>       >>
>>       >>      Hmmm, I think we have a problem with exact counting, see
>>       >> https://sourceforge.net/p/phpmyadmin/bugs/4027/
>>       >>
>>       >>      It's true that 750 M rows is a lot of rows...
>>       >>
>>       >> Would it make things too slow to get the rough count first and
>>      then get
>>       >> the exact count if the rough counts is less than some defined
>>      threshold?
>>
>>      (The title of bug #4027 is "$cfg['MaxExactCount'] is ignored when
>>      BROWSING is back")
>>       >
>>       > That's exactly the goal of the MaxExactCount configuration directive,
>>       > and I think it could be applied here as well.
>>       >
>>       > Would not be too slow, as the rough count is very quick.
>>       >
>>
>> My bad.
>>
>> So I think it's best to use $cfg['MaxExactCount'] in browsing as well.
>> However IMO, its default value being 0 would break its purpose.
>
> Not necessarily. You see, the guy reporting bug #4027 was aware of this
> directive and can set it to an appropriate value.
>
> In version 3.0.0 we had 20000 as a default value, not sure why we set it
> to 0 later.
>

See the discussion in
https://github.com/phpmyadmin/phpmyadmin/pull/83

but this was before my change in 4.0.4.

-- 
Marc Delisle
http://infomarc.info




More information about the Developers mailing list