List:General Discussion« Previous MessageNext Message »
From:Grant Giddens Date:December 21 2005 3:37am
Subject:Do I need to tweak my server variables for this SELECT statement?
View as plain text  
 Hi,
  
    For the first time, I'm working with a really large  database.  I have 1 SQL statement
that brings my server to it's  knees.  This setup is currently on my home development PC,
and not  in production.  The server is running apache, samba, and mysql  under gentoo
linux.  I'm the only user, so there is no vitually  load on the server.  The server has 1
Gig of ram.
  
  I've got 2 tables, one that holds a list of product, the other holds a  list of
categories that the product is associated with.  My SELECT  statment just grabs 10
products that are associated with a specific  category.  The product table has 650,000
rows and the category  table has 8,150,000 rows.
  
  My SELECT statement is:
  
  SELECT pn_pricecompare_catprod.category, pn_pricecompare_catprod.asin, 
pn_pricecompare_product.title, pn_pricecompare_product.prod_id, 
pn_pricecompare_product.image_small, pn_pricecompare_product.brand, 
pn_pricecompare_product.manufacturer, pn_pricecompare_product.mpn, 
pn_pricecompare_product.model, pn_pricecompare_product.artist, 
pn_pricecompare_product.author, pn_pricecompare_product.binding, 
pn_pricecompare_product.label, pn_pricecompare_product.audiencerating, 
pn_pricecompare_product.studio, pn_pricecompare_product.releasedate, 
pn_pricecompare_product.numberofpages, pn_pricecompare_product.pubdate, 
pn_pricecompare_product.publisher, pn_pricecompare_product.searchindex, 
pn_pricecompare_product.lowest_price,  pn_pricecompare_product.num_merchants FROM
pn_pricecompare_catprod,  pn_pricecompare_product WHERE
((pn_pricecompare_catprod.category =  '283155') AND (pn_pricecompare_catprod.asin = 
pn_pricecompare_product.asin)) ORDER BY  pn_pricecompare_product.salesrank ASC
 LIMIT 0,10  
  
  Sometimes this takes 10 minutes to execute.  When this occurs, I can hear the hard drive
thrashing.
  
  If I do an EXPLAIN, I get:
  
   table       type        possible_keys       key        key_len       ref       rows    
   Extra
  pn_pricecompare_catprod     ref      PRIMARY,asin     PRIMARY     4      const    
355416      Using where; Using index; Using temporary; Using f...
  pn_pricecompare_product     eq_ref      asin     asin     10     
pn_pricecompare_catprod.asin     1       
  
  
  When the query executes, and I check the processes, I see "Copying to tmp table on disk"
  
  After googling for this statement I found several pages that indicate I  might have to
tweak the my.cnf file.  I checked my my.cnf file,  and it's just the default file.  I
found the example huge, large,  medium, and small .cnf files and plan on using them to
try to optimize  my my.cnf file.  Other than trial and error, I really don't know  what
I'm doing.
  
  Here is a link to my current server variables:
  http://retailretreat.com/mysql/server_variables.php.htm
  
  Here is a link to my current my.cnf file:
  http://retailretreat.com/mysql/my.cnf.txt
  
  Here is a link to my proposed my.cnf file.  I'm not sure if there are any errors or
mistakes in the file.
  http://retailretreat.com/mysql/my-new.cnf.txt
  
  Am I right that I need to tweak the my.cnf file?  I think I  optimized my tables with
INDEXes correctly already.  What should I  look for first?
  
  Thanks,
  Grant

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
Thread
Do I need to tweak my server variables for this SELECT statement?Grant Giddens21 Dec
Re: Do I need to tweak my server variables for this SELECTstatement?James Harvard21 Dec
  • Re: Do I need to tweak my server variables for this SELECT statement?Grant Giddens21 Dec
    • Re: Do I need to tweak my server variables for this SELECT statement?Hank21 Dec
      • Re: Do I need to tweak my server variables for this SELECT statement?Grant Giddens21 Dec
        • Re: Do I need to tweak my server variables for this SELECT statement?Hank21 Dec
          • Re: Do I need to tweak my server variables for this SELECT statement?Grant Giddens21 Dec
          • Re: Do I need to tweak my server variables for this SELECT statement?Grant Giddens21 Dec
            • Re: Do I need to tweak my server variables for this SELECT statement?Hank23 Dec
              • Re: Do I need to tweak my server variables for this SELECT statement?Grant Giddens23 Dec
                • Re: Do I need to tweak my server variables for this SELECTstatement?James Harvard23 Dec
                  • Re: Do I need to tweak my server variables for this SELECT statement?Grant Giddens23 Dec
                    • Re: Do I need to tweak my server variables for this SELECT statement?Hank24 Dec
    • Filtering joinEris Ristemena21 Dec
      • Re: Filtering joinPeter Brawley21 Dec
      • Re: Filtering joinGleb Paharenko21 Dec
    • Re: Do I need to tweak my server variables for this SELECTstatement?James Harvard21 Dec
    • Re: Filtering joinEris Ristemena21 Dec
    • Re: Filtering joinEris Ristemena21 Dec
      • Re: Filtering joinSGreen21 Dec
        • Re: Filtering joinEris Ristemena21 Dec
          • Re: Filtering joinSGreen21 Dec
            • Re: Filtering joinEris Ristemena21 Dec
Re: Do I need to tweak my server variables for this SELECT statement?Grant Giddens21 Dec
  • Re: Do I need to tweak my server variables for this SELECT statement?Hank21 Dec
    • Re: Do I need to tweak my server variables for this SELECT statement?SGreen21 Dec