1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

MDEV-7317: Make an index ignorable to the optimizer

This feature adds the functionality of ignorability for indexes.
Indexes are not ignored be default.

To control index ignorability explicitly for a new index,
use IGNORE or NOT IGNORE as part of the index definition for
CREATE TABLE, CREATE INDEX, or ALTER TABLE.

Primary keys (explicit or implicit) cannot be made ignorable.

The table INFORMATION_SCHEMA.STATISTICS get a new column named IGNORED that
would store whether an index needs to be ignored or not.
This commit is contained in:
Varun Gupta
2021-02-25 19:59:51 +05:30
parent 71d30d01aa
commit f691d9865b
108 changed files with 2541 additions and 1422 deletions

View File

@ -130,13 +130,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
tab 1 idx2 1 c2 A # 32 NULL SPATIAL
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
SET @g1 = ST_GeomFromText('POLYGON((20 20,30 30,40 40,50 50,40 50,30 40,30 30,20 20))');
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab WHERE ST_Crosses(tab.c4, @g1);
c1 ST_Astext(c2) ST_Astext(c4)
@ -174,13 +174,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c44`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
tab 1 idx2 1 c22 A # 32 NULL SPATIAL
tab 1 idx3 1 c33 A # 32 NULL SPATIAL
tab 1 idx4 1 c44 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c44 A # 10 NULL BTREE
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
tab 1 idx2 1 c22 A # 32 NULL SPATIAL NO
tab 1 idx3 1 c33 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c44 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c44 A # 10 NULL BTREE NO
ALTER TABLE tab CHANGE COLUMN c22 c2 POINT NOT NULL;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
@ -206,13 +206,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
tab 1 idx2 1 c2 A # 32 NULL SPATIAL
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
ALTER TABLE tab DISABLE KEYS;
Warnings:
Note 1031 Storage engine InnoDB of the table `test`.`tab` doesn't have this option
@ -332,11 +332,11 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
DELETE FROM tab;
ALTER TABLE tab ADD PRIMARY KEY(c2);
affected rows: 0
@ -364,14 +364,14 @@ tab CREATE TABLE `tab` (
SPATIAL KEY `idx2` (`c2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c2 A # 25 NULL BTREE
tab 0 const_1 1 c2 A # 25 NULL BTREE
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
tab 1 idx2 1 c2 A # 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c2 A # 25 NULL BTREE NO
tab 0 const_1 1 c2 A # 25 NULL BTREE NO
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@ -406,14 +406,14 @@ tab CREATE TABLE `tab` (
SPATIAL KEY `idx2` (`c2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c5 A # 10 NULL BTREE
tab 0 const_1 1 c5 A # 10 NULL BTREE
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
tab 1 idx2 1 c2 A # 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c5 A # 10 NULL BTREE NO
tab 0 const_1 1 c5 A # 10 NULL BTREE NO
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@ -540,13 +540,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
tab 1 idx2 1 c2 A # 32 NULL SPATIAL
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
SET @g1 = ST_GeomFromText( 'POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))');
UPDATE tab SET C2 = ST_GeomFromText('POINT(1000 1000)')
WHERE MBRContains(tab.c4, @g1);
@ -577,13 +577,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
tab 1 idx2 1 c2 A # 32 NULL SPATIAL
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
ANALYZE TABLE tab;
Table Op Msg_type Msg_text
test.tab analyze status Engine-independent statistics collected
@ -634,13 +634,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
tab 1 idx2 1 c2 A # 32 NULL SPATIAL
tab 1 idx3 1 c3 A # 32 NULL SPATIAL
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
tab 1 idx6 1 c4 A # 10 NULL BTREE
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
tab 1 idx6 1 c4 A # 10 NULL BTREE NO
ANALYZE TABLE tab;
Table Op Msg_type Msg_text
test.tab analyze status Engine-independent statistics collected
@ -716,12 +716,12 @@ child CREATE TABLE `child` (
SPATIAL KEY `idx2` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM parent;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
parent 0 PRIMARY 1 id A 0 25 NULL BTREE
parent 1 idx1 1 id A NULL 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
parent 0 PRIMARY 1 id A 0 25 NULL BTREE NO
parent 1 idx1 1 id A NULL 32 NULL SPATIAL NO
SHOW INDEX FROM child;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
child 1 idx2 1 parent_id A # 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
child 1 idx2 1 parent_id A # 32 NULL SPATIAL NO
ALTER TABLE child ADD FOREIGN KEY(parent_id) REFERENCES parent(id) ;
ALTER TABLE child ADD FOREIGN KEY(parent_id) REFERENCES parent(id) ON DELETE CASCADE ;
DROP table child,parent;
@ -748,12 +748,12 @@ child CREATE TABLE `child` (
SPATIAL KEY `idx2` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM parent;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
parent 0 PRIMARY 1 id A 0 10 NULL BTREE
parent 1 idx1 1 id A NULL 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
parent 0 PRIMARY 1 id A 0 10 NULL BTREE NO
parent 1 idx1 1 id A NULL 32 NULL SPATIAL NO
SHOW INDEX FROM child;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
child 1 idx2 1 parent_id A NULL 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
child 1 idx2 1 parent_id A NULL 32 NULL SPATIAL NO
ALTER TABLE child ADD FOREIGN KEY(parent_id) REFERENCES parent(id) ;
DROP table child,parent;
create table t1 (c1 int) engine=innodb;

View File

@ -7,12 +7,12 @@ CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=8 ;
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=4
COMMENT 'Spatial index on Geometry type column';
SHOW INDEXES FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE
tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL
tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968
tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL
tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE NO
tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL NO
tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968 NO
tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL NO
tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@ -437,11 +437,11 @@ CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=2 ;
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=8
COMMENT 'Spatial index on Geometry type column';
SHOW INDEXES FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL
tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968
tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL
tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL NO
tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968 NO
tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL NO
tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@ -854,12 +854,12 @@ CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=16 ;
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=16
COMMENT 'Spatial index on Geometry type column';
SHOW INDEXES FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE
tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL
tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968
tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL
tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE NO
tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL NO
tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968 NO
tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL NO
tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column NO
INSERT INTO tab(c2,c3,c4,c5)
VALUES(ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@ -1255,8 +1255,8 @@ tab CREATE TABLE `tab` (
CONSTRAINT `tab_const` CHECK (cast(`c1` as char charset binary) > 0)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
tab 1 idx1 1 c1 A NULL 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
tab 1 idx1 1 c1 A NULL 32 NULL SPATIAL NO
set @g1 = ST_GeomFromText('POINT(-1 -2)');
SELECT ST_AsText(c1) FROM tab;
ST_AsText(c1)

View File

@ -37,8 +37,8 @@ POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
t1 1 g 1 g A # 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
t1 1 g 1 g A # 32 NULL SPATIAL NO
drop table t1;
create table t1 (name VARCHAR(100), square GEOMETRY not null, spatial index (square))engine=innodb;
INSERT INTO t1 VALUES("small", ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
@ -183,10 +183,10 @@ POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
t1 0 PRIMARY 1 i A # NULL NULL BTREE
t1 0 PRIMARY 2 i2 A # NULL NULL BTREE
t1 1 g 1 g A # 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
t1 0 PRIMARY 1 i A # NULL NULL BTREE NO
t1 0 PRIMARY 2 i2 A # NULL NULL BTREE NO
t1 1 g 1 g A # 32 NULL SPATIAL NO
drop table t1;
CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,

View File

@ -37,10 +37,10 @@ POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
t1 0 PRIMARY 1 i A # NULL NULL BTREE
t1 0 PRIMARY 2 i2 A # NULL NULL BTREE
t1 1 g 1 g A # 32 NULL SPATIAL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
t1 0 PRIMARY 1 i A # NULL NULL BTREE NO
t1 0 PRIMARY 2 i2 A # NULL NULL BTREE NO
t1 1 g 1 g A # 32 NULL SPATIAL NO
drop table t1;
create table t1 (name VARCHAR(100), square GEOMETRY not null, spatial index (square))engine=innodb;
INSERT INTO t1 VALUES("small", ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));