<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Question Re: Query optimization to reduce execution time in Technology Q&amp;A</title>
    <link>https://community.sap.com/t5/technology-q-a/query-optimization-to-reduce-execution-time/qaa-p/13845257#M4876100</link>
    <description>&lt;P&gt;Is that a question on a MySQL database?&lt;/P&gt;
&lt;P&gt;If so, please ask that on an appropriate forum, this one is for SAP Sybase SQL Anywhere, cf. the &lt;A href="http://sqlanywhere-forum.sap.com/faq/"&gt;FAQ&lt;/A&gt;.&lt;/P&gt;</description>
    <pubDate>Tue, 23 Sep 2014 04:29:46 GMT</pubDate>
    <dc:creator>VolkerBarth</dc:creator>
    <dc:date>2014-09-23T04:29:46Z</dc:date>
    <item>
      <title>Query optimization to reduce execution time</title>
      <link>https://community.sap.com/t5/technology-q-a/query-optimization-to-reduce-execution-time/qaq-p/13845256</link>
      <description>&lt;P&gt;Problem: Below query is slow query, minimum execution time is 3.x sec and as the category id increase in "IN" clause execution of query taking more that a minute.&lt;/P&gt;
&lt;P&gt;QUERY:&lt;/P&gt;
&lt;P&gt;explain SELECT a.* FROM
label a
INNER JOIN category_label c ON a.id = c.label_id
INNER JOIN product_label p ON a.id = p.label_id 
INNER JOIN product p2 ON p.product_id = p2.id
INNER JOIN category c2 ON p2.category_id = c2.id
INNER JOIN category c3 ON (c2.lft BETWEEN c3.lft AND c3.rgt) 
INNER JOIN user u ON ((u.id = p2.user_id AND u.is_active = 1))
INNER JOIN country c4 ON (p2.country_id = c4.id) 
WHERE (c.category_id IN ('843', '848', '849', '853', '856', '858') AND a.is_filterable = 1 AND a.type &amp;lt;&amp;gt; "textarea" AND c2.rgt = (c2.lft + 1) AND c3.id IN ('843', '848', '849', '853', '856', '858') AND c4.id IN ('190') AND p2.status = 1) 
GROUP BY a.id 
ORDER BY a.sort_order&lt;/P&gt;
&lt;P&gt;query explanation - 
&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*** 1. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;
           id: 1
  select_type: SIMPLE
        table: c4
         type: const
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 4
          ref: const
         rows: 1
        Extra: Using index; Using temporary; Using filesort
&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt; 2. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;
           id: 1
  select_type: SIMPLE
        table: c3
         type: range
possible_keys: PRIMARY,lft_rgt_inx
          key: PRIMARY
      key_len: 4
          ref: NULL
         rows: 6
        Extra: Using where
&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt; 3. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;
           id: 1
  select_type: SIMPLE
        table: c
         type: range
possible_keys: PRIMARY,label_id,category_id
          key: PRIMARY
      key_len: 4
          ref: NULL
         rows: 197
        Extra: Using where; Using index; Using join buffer
&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt; 4. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;***
           id: 1
  select_type: SIMPLE
        table: a
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 4
          ref: c.label_id
         rows: 1
        Extra: Using where&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*** 5. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;
           id: 1
  select_type: SIMPLE
        table: p
         type: ref
possible_keys: product_id,label_id
          key: label_id
      key_len: 4
          ref: c.label_id
         rows: 3827
        Extra: 
&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt; 6. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;
           id: 1
  select_type: SIMPLE
        table: p2
         type: eq_ref
possible_keys: PRIMARY,category_id,user_id,country_id
          key: PRIMARY
      key_len: 8
          ref: p.product_id
         rows: 1
        Extra: Using where
&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt; 7. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;
           id: 1
  select_type: SIMPLE
        table: c2
         type: eq_ref
possible_keys: PRIMARY,lft_rgt_inx
          key: PRIMARY
      key_len: 4
          ref: p2.category_id
         rows: 1
        Extra: Using where
&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt; 8. row &lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;/STRONG&gt;***
           id: 1
  select_type: SIMPLE
        table: u
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 4
          ref: p2.user_id
         rows: 1
        Extra: Using where&lt;/P&gt;
&lt;P&gt;Show create table - &lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;labelMaster&lt;/CODE&gt; (
  &lt;CODE&gt;id&lt;/CODE&gt; int(11) NOT NULL AUTO_INCREMENT,
  &lt;CODE&gt;name&lt;/CODE&gt; varchar(255) NOT NULL,
  &lt;CODE&gt;type&lt;/CODE&gt; varchar(50) NOT NULL COMMENT 'textbox, checkbox, selectbox, textarea',
  &lt;CODE&gt;show_filter&lt;/CODE&gt; tinyint(1) NOT NULL DEFAULT '1',
  &lt;CODE&gt;select_all_level&lt;/CODE&gt; int(11) NOT NULL,
  PRIMARY KEY (&lt;CODE&gt;id&lt;/CODE&gt;)
) ENGINE=InnoDB &lt;/P&gt;
&lt;P&gt;CREATE TABLE &lt;CODE&gt;categoryMaster&lt;/CODE&gt; (
  &lt;CODE&gt;id&lt;/CODE&gt; int(11) NOT NULL AUTO_INCREMENT,
  &lt;CODE&gt;parent_id&lt;/CODE&gt; int(11) NOT NULL DEFAULT '0',
  &lt;CODE&gt;lft&lt;/CODE&gt; int(11) NOT NULL DEFAULT '0',
  &lt;CODE&gt;rgt&lt;/CODE&gt; int(11) NOT NULL DEFAULT '0',
  &lt;CODE&gt;level&lt;/CODE&gt; tinyint(4) NOT NULL DEFAULT '0',
  &lt;CODE&gt;product_count&lt;/CODE&gt; int(11) NOT NULL,
  PRIMARY KEY (&lt;CODE&gt;id&lt;/CODE&gt;),
  UNIQUE KEY &lt;CODE&gt;lft_rgt_inx&lt;/CODE&gt; (&lt;CODE&gt;lft&lt;/CODE&gt;,&lt;CODE&gt;rgt&lt;/CODE&gt;),
  KEY &lt;CODE&gt;parent_id&lt;/CODE&gt; (&lt;CODE&gt;parent_id&lt;/CODE&gt;)
) ENGINE=InnoDB &lt;/P&gt;
&lt;P&gt;CREATE TABLE &lt;CODE&gt;productMaster&lt;/CODE&gt; (
  &lt;CODE&gt;id&lt;/CODE&gt; bigint(20) NOT NULL AUTO_INCREMENT,
  &lt;CODE&gt;name&lt;/CODE&gt; varchar(255) NOT NULL,
  &lt;CODE&gt;category_id&lt;/CODE&gt; int(11) NOT NULL,
  &lt;CODE&gt;status&lt;/CODE&gt; tinyint(1) NOT NULL DEFAULT '-1' ,
  &lt;CODE&gt;user_id&lt;/CODE&gt; int(11) NOT NULL,
  &lt;CODE&gt;label_value_ids&lt;/CODE&gt; varchar (255),
  &lt;CODE&gt;product_source_url&lt;/CODE&gt; varchar(255) NOT NULL,
  &lt;CODE&gt;country_id&lt;/CODE&gt; int(4) NOT NULL,
  &lt;CODE&gt;state_id&lt;/CODE&gt; int(5) NOT NULL,
  PRIMARY KEY (&lt;CODE&gt;id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;category_id&lt;/CODE&gt; (&lt;CODE&gt;category_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;user_id&lt;/CODE&gt; (&lt;CODE&gt;user_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;x_area_id&lt;/CODE&gt; (&lt;CODE&gt;x_area_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;state_id&lt;/CODE&gt; (&lt;CODE&gt;state_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;country_id&lt;/CODE&gt; (&lt;CODE&gt;country_id&lt;/CODE&gt;),
  FULLTEXT KEY &lt;CODE&gt;name&lt;/CODE&gt; (&lt;CODE&gt;name&lt;/CODE&gt;),
  FULLTEXT KEY &lt;CODE&gt;label_value_ids&lt;/CODE&gt; (&lt;CODE&gt;label_value_ids&lt;/CODE&gt;)
) ENGINE=MyISAM&lt;/P&gt;
&lt;P&gt;CREATE TABLE &lt;CODE&gt;product_label&lt;/CODE&gt; (
  &lt;CODE&gt;id&lt;/CODE&gt; bigint(20) NOT NULL AUTO_INCREMENT,
  &lt;CODE&gt;product_id&lt;/CODE&gt; bigint(20) NOT NULL,
  &lt;CODE&gt;label_id&lt;/CODE&gt; int(11) NOT NULL,
  &lt;CODE&gt;label_value&lt;/CODE&gt; varchar(1200) DEFAULT NULL,
  &lt;CODE&gt;category_id&lt;/CODE&gt; int(11) NOT NULL,
  PRIMARY KEY (&lt;CODE&gt;id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;product_id&lt;/CODE&gt; (&lt;CODE&gt;product_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;category_id&lt;/CODE&gt; (&lt;CODE&gt;category_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;label_id&lt;/CODE&gt; (&lt;CODE&gt;label_id&lt;/CODE&gt;)
) ENGINE=InnoDB&lt;/P&gt;
&lt;P&gt;CREATE TABLE &lt;CODE&gt;label_values&lt;/CODE&gt; (
  &lt;CODE&gt;id&lt;/CODE&gt; int(11) NOT NULL AUTO_INCREMENT,
  &lt;CODE&gt;label_id&lt;/CODE&gt; int(11) NOT NULL,
  &lt;CODE&gt;value&lt;/CODE&gt; varchar(255) NOT NULL,
  &lt;CODE&gt;sort_order&lt;/CODE&gt; smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (&lt;CODE&gt;id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;label_id&lt;/CODE&gt; (&lt;CODE&gt;label_id&lt;/CODE&gt;),
  CONSTRAINT &lt;CODE&gt;label_values_ibfk_1&lt;/CODE&gt; FOREIGN KEY (&lt;CODE&gt;label_id&lt;/CODE&gt;) REFERENCES &lt;CODE&gt;label&lt;/CODE&gt; (&lt;CODE&gt;id&lt;/CODE&gt;) ON DELETE CASCADE
) ENGINE=InnoDB&lt;/P&gt;
&lt;P&gt;CREATE TABLE &lt;CODE&gt;category_label&lt;/CODE&gt; (
  &lt;CODE&gt;category_id&lt;/CODE&gt; int(11) NOT NULL,
  &lt;CODE&gt;label_id&lt;/CODE&gt; int(11) NOT NULL,
  &lt;CODE&gt;is_listview&lt;/CODE&gt; tinyint(1) NOT NULL,
  &lt;CODE&gt;sort_order&lt;/CODE&gt; smallint(2) NOT NULL,
  PRIMARY KEY (&lt;CODE&gt;category_id&lt;/CODE&gt;,&lt;CODE&gt;label_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;label_id&lt;/CODE&gt; (&lt;CODE&gt;label_id&lt;/CODE&gt;),
  KEY &lt;CODE&gt;category_id&lt;/CODE&gt; (&lt;CODE&gt;category_id&lt;/CODE&gt;)
) ENGINE=MyISAM&lt;/P&gt;
&lt;P&gt;Please suggest me how can i rewrite the qurey to reduce execution time and make website fast.&lt;/P&gt;
&lt;P&gt;also I have tried to change database engine.&lt;/P&gt;
&lt;P&gt;Please note: The query already using cache.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Sep 2014 03:59:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/query-optimization-to-reduce-execution-time/qaq-p/13845256</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2014-09-23T03:59:59Z</dc:date>
    </item>
    <item>
      <title>Re: Query optimization to reduce execution time</title>
      <link>https://community.sap.com/t5/technology-q-a/query-optimization-to-reduce-execution-time/qaa-p/13845257#M4876100</link>
      <description>&lt;P&gt;Is that a question on a MySQL database?&lt;/P&gt;
&lt;P&gt;If so, please ask that on an appropriate forum, this one is for SAP Sybase SQL Anywhere, cf. the &lt;A href="http://sqlanywhere-forum.sap.com/faq/"&gt;FAQ&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Sep 2014 04:29:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/query-optimization-to-reduce-execution-time/qaa-p/13845257#M4876100</guid>
      <dc:creator>VolkerBarth</dc:creator>
      <dc:date>2014-09-23T04:29:46Z</dc:date>
    </item>
  </channel>
</rss>

