Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-22324

Benchmark parts of query-processing




      For optimization of query processing in general, as well as for MDEV-16670 particularly we need to know how much time took each part of query processing for simple queries (no optimisation and no big joins). I think we can split processing on such phases:

      1) parsing
      2) open and lock tables (common overhead and per table)
      2.1) simple queries
      2.2) if simple trigger involved (prelocking opening trigger and so on)
      3) prepare
      4) optimization
      5) execution and sending results (if possible sending reults separately for localhost connection)
      6) closing tables
      7) cleanup

      It would be nice to check
      a) simple selects (for 1 row and 2 row MyISAM tables)
      SELECT a from t1;
      SELECT a from t1, t2 where t1.primary_key= t2.primary_key;
      SELECT a from t1, t2, t3 where t1.primary_key= t2.primary_key and t2.primary_key= t3.primary_key;
      ... so on
      b) simple update:
      UPDATE t1 SET a=1;

      c) simple delete
      DELETE FROM t1 where a=1; (we need condition to prevent turning it to truncate)

      e) (lower priority) multi delete and multi-update which are specific SELECTs (interesting to see how it compared to simple UPDATE and usual SELECT.

      Also it is interesting to compare 5.5 and 10.5 to see if we have much regress for simple queries at all (and find it if we really have it a lot).


        Issue Links



              monty Michael Widenius
              sanja Oleksandr Byelkin
              2 Vote for this issue
              7 Start watching this issue



                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.