Run your query twice; take the second time.  For most queries the first run 
brings everything into cache, then the second gives you a repeatable, though 
cached, timing.

Please provide EXPLAIN SELECT, SHOW CREATE TABLE, and we will critique your 
indexes and query plan.

Handler* is another way to get consistent values.  These numbers are unaffected 
by caching.

1GB buffer_pool?  You have only 2GB of available RAM?  Normally, if you are 
running only InnoDB, the buffer_pool should be set to about 70% of available 
RAM.

> -----Original Message-----
> From: Ananda Kumar [mailto:anan...@gmail.com]
> Sent: Tuesday, April 16, 2013 2:06 AM
> To: Ilya Kazakevich
> Cc: MySQL
> Subject: Re: Mesaure query speed and InnoDB pool
> 
> Does your query use proper indexes.
> Does your query scan less number blocks/rows can you share the explain
> plan of the sql
> 
> 
> On Tue, Apr 16, 2013 at 2:23 PM, Ilya Kazakevich <
> ilya.kazakev...@jetbrains.com> wrote:
> 
> > Hello,
> >
> > I have 12Gb DB and 1Gb InnoDB pool. My query takes 50 seconds when it
> > reads data from disk and about 2 seconds when data already exists in
> > pool. And it may take 10 seconds when _some_ pages are on disk and
> some are in pool.
> > So, what is the best way to test query performance? I have several
> ideas:
> > * Count 'Innodb_rows_read' or 'Innodb_pages_read' instead of actual
> > time
> > * Set pool as small as possible to reduce its effect on query speed
> > * Set pool larger than my db and run query to load all data into pool
> > and measure speed then
> >
> > How do you measure your queries' speed?
> >
> > Ilya Kazakevich
> >
> >
> > --
> > MySQL General Mailing List
> > For list archives: http://lists.mysql.com/mysql
> > To unsubscribe:    http://lists.mysql.com/mysql
> >
> >

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

Reply via email to