Skip to content

Instantly share code, notes, and snippets.

@mikesun
Last active November 30, 2017 21:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikesun/94c98b1129333ae2afe6147402633c93 to your computer and use it in GitHub Desktop.
Save mikesun/94c98b1129333ae2afe6147402633c93 to your computer and use it in GitHub Desktop.

Data

CREATE TABLE test.t1 (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    name STRING NOT NULL,
    age INT NOT NULL,
    deleted BOOL DEFAULT NULL,
    INDEX name_age_deleted(name, age, deleted),
    INDEX name_deleted_age(name, deleted, age)
);

INSERT INTO test.t1(name, age) VALUES('mike', 39);
INSERT INTO test.t1(name, age) VALUES('mike', 45);
INSERT INTO test.t1(name, age, deleted) VALUES('mike', 35, TRUE);
INSERT INTO test.t1(name, age) VALUES('bob', 30);

Query

EXPLAIN (VERBOSE) SELECT * FROM test.t1@name_deleted_age
WHERE name='mike' AND age < 40 AND deleted IS NULL ORDER BY age;

+-------+------+--------+-------------------------+----------------------------+--------------+
| Level | Type | Field  |       Description       |          Columns           |   Ordering   |
+-------+------+--------+-------------------------+----------------------------+--------------+
|     0 | sort |        |                         | (id, "name", age, deleted) | ="name",+age |
|     0 |      | order  | +age                    |                            |              |
|     1 | scan |        |                         | (id, "name", age, deleted) | ="name"      |
|     1 |      | table  | t1@name_deleted_age     |                            |              |
|     1 |      | spans  | /"mike"-/"mike"/NULL/40 |                            |              |
|     1 |      | filter | age < 40                |                            |              |
+-------+------+--------+-------------------------+----------------------------+--------------+

Filtering on age instead of using index and also doing sort by age instead of natural ordering of index.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment