Slow ORDER BY with large and small tables





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







0















I have one small table (200 rows) and two large tables (200k rows each).



Small table has primary key id and some other fields.



First big table has id field (not a primary key), which are duplicated, but sorted numbers and a matchresult_id field, which are id's from a second big table.



Second big table has a field matchresult_id (primary key) and some other fields.



The query:



SELECT big2.*
FROM small_table s1
INNER JOIN small_table s2 ON s1.id = s2.parent_id
INNER JOIN big_table1 big1 ON s2.id = big1.id
INNER JOIN big_table2 big2 ON big1.matchresult_id = big2.matchresult_id
ORDER BY big2.matchresult_id


The query takes over 1 second to complete. Without ORDER BY it takes 0.003 seconds. How to optimize the query?









share







New contributor




osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.



























    0















    I have one small table (200 rows) and two large tables (200k rows each).



    Small table has primary key id and some other fields.



    First big table has id field (not a primary key), which are duplicated, but sorted numbers and a matchresult_id field, which are id's from a second big table.



    Second big table has a field matchresult_id (primary key) and some other fields.



    The query:



    SELECT big2.*
    FROM small_table s1
    INNER JOIN small_table s2 ON s1.id = s2.parent_id
    INNER JOIN big_table1 big1 ON s2.id = big1.id
    INNER JOIN big_table2 big2 ON big1.matchresult_id = big2.matchresult_id
    ORDER BY big2.matchresult_id


    The query takes over 1 second to complete. Without ORDER BY it takes 0.003 seconds. How to optimize the query?









    share







    New contributor




    osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      0












      0








      0








      I have one small table (200 rows) and two large tables (200k rows each).



      Small table has primary key id and some other fields.



      First big table has id field (not a primary key), which are duplicated, but sorted numbers and a matchresult_id field, which are id's from a second big table.



      Second big table has a field matchresult_id (primary key) and some other fields.



      The query:



      SELECT big2.*
      FROM small_table s1
      INNER JOIN small_table s2 ON s1.id = s2.parent_id
      INNER JOIN big_table1 big1 ON s2.id = big1.id
      INNER JOIN big_table2 big2 ON big1.matchresult_id = big2.matchresult_id
      ORDER BY big2.matchresult_id


      The query takes over 1 second to complete. Without ORDER BY it takes 0.003 seconds. How to optimize the query?









      share







      New contributor




      osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I have one small table (200 rows) and two large tables (200k rows each).



      Small table has primary key id and some other fields.



      First big table has id field (not a primary key), which are duplicated, but sorted numbers and a matchresult_id field, which are id's from a second big table.



      Second big table has a field matchresult_id (primary key) and some other fields.



      The query:



      SELECT big2.*
      FROM small_table s1
      INNER JOIN small_table s2 ON s1.id = s2.parent_id
      INNER JOIN big_table1 big1 ON s2.id = big1.id
      INNER JOIN big_table2 big2 ON big1.matchresult_id = big2.matchresult_id
      ORDER BY big2.matchresult_id


      The query takes over 1 second to complete. Without ORDER BY it takes 0.003 seconds. How to optimize the query?







      mysql optimization





      share







      New contributor




      osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 3 mins ago









      osemecosemec

      1




      1




      New contributor




      osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      osemec is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          0






          active

          oldest

          votes












          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "182"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          osemec is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f235373%2fslow-order-by-with-large-and-small-tables%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          osemec is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          osemec is a new contributor. Be nice, and check out our Code of Conduct.













          osemec is a new contributor. Be nice, and check out our Code of Conduct.












          osemec is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Database Administrators Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f235373%2fslow-order-by-with-large-and-small-tables%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Liste der Baudenkmale in Friedland (Mecklenburg)

          Single-Malt-Whisky

          Czorneboh