From: Mergen Imeev <imeevma@tarantool.org> To: Nikita Pettik <korablev@tarantool.org> Cc: Mergen Imeev <imeevma@gmail.com>, tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH v2 1/1] sql: enable autoindex optimization Date: Tue, 6 Oct 2020 14:31:22 +0300 [thread overview] Message-ID: <fdffcda5-56c2-053e-5e15-01fa019157a9@tarantool.org> (raw) In-Reply-To: <20201006104440.GB12999@tarantool.org> On 06.10.2020 13:44, Nikita Pettik wrote: > On 06 Oct 10:08, imeevma@tarantool.org wrote: >> This patch enables "autoindex" optimization. This optimization uses an >> ephemeral space that contains all the fields used in the query. This >> ephemeral space is called "autoindex". Autoindex may have fewer fields >> than the original space, and the order of these fields in autoindex may >> be different from their order in the original space. In addition to the >> mentioned fields, autoindex contains a rowid. >> >> The primary key of autoindex is a covering index, i.e. it contains all >> of its fields. >> >> Currently this optimization mainly used in cases when values SELECTED >> from more than one space and WHERE specified. >> >> At the moment, this optimization does not take into account the number >> of tuples in spaces. This should be fixed. >> >> Closes #4933 >> >> Co-authored-by: Mergen Imeev <imeevma@gmail.com> >> Co-authored-by: Timur Safin <tsafin@tarantool.org> >> --- >> https://github.com/tarantool/tarantool/issues/4933 >> https://github.com/tarantool/tarantool/tree/imeevma/gh-4933-autoindex >> >> @ChangeLog >> - "Auto-index" optimization is now enabled (gh-4933). >> diff --git a/test/sql/misc.result b/test/sql/misc.result >> index 6af11bfba..d86d55081 100644 >> --- a/test/sql/misc.result >> +++ b/test/sql/misc.result >> @@ -204,3 +204,32 @@ box.execute('SELECT field66, field68, field70 FROM test') >> box.space.TEST:drop() >> --- >> ... >> +-- gh-4933: Make sure that autoindex optimization is used. >> +box.execute('CREATE TABLE t1(i int primary key, a int);') >> +--- >> +- row_count: 1 >> +... >> +box.execute('CREATE TABLE t2(i int primary key, b int);') >> +--- >> +- row_count: 1 >> +... >> +-- >> +-- There is no need to insert values in the tables since planner assumes a >> +-- default number of tuples for each space, regardless of how many tuples there >> +-- actually are in those spaces. The default value is 1048576 (== 2^20). >> +-- >> +box.execute('EXPLAIN QUERY PLAN SELECT a, b FROM t1, t2 WHERE a = b;') >> +--- >> +- metadata: >> + - name: selectid >> + type: integer >> + - name: order >> + type: integer >> + - name: from >> + type: integer >> + - name: detail >> + type: text >> + rows: >> + - [0, 0, 0, 'SCAN TABLE T1 (~1048576 rows)'] >> + - [0, 1, 1, 'SEARCH TABLE T2 USING AUTOMATIC COVERING INDEX (B=?) (~20 rows)'] >> +... > I haven't reviewed the whole patch yet, but do you really think autoindex > qp optimization deserves this single insignificant test..? So, there won't be review before I create new tests? >
next prev parent reply other threads:[~2020-10-06 11:31 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-06 7:08 imeevma 2020-10-06 10:44 ` Nikita Pettik 2020-10-06 11:00 ` Mergen Imeev 2020-10-06 11:14 ` Nikita Pettik 2020-10-06 11:31 ` Mergen Imeev [this message] 2020-10-11 10:33 ` Mergen Imeev -- strict thread matches above, loose matches on Subject: below -- 2020-09-26 18:35 imeevma 2020-10-01 22:03 ` Vladislav Shpilevoy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=fdffcda5-56c2-053e-5e15-01fa019157a9@tarantool.org \ --to=imeevma@tarantool.org \ --cc=imeevma@gmail.com \ --cc=korablev@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2 1/1] sql: enable autoindex optimization' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox