背景
在 Mysql 的建表语法中,用户可以使用 index 关键字指定列名作为索引。在 LightDB 24.1 中支持了该语法的部分特性。
用例
-- use default index name
create table foo(a int, index (a));
-- create unique index
create table foo(a int, unique index(a));
-- use custom index name
create table foo(a int, index idx_foo_a(a));
-- index name is the same as table name
--= error in LightDB, warning in mysql
create table foo(a int, index foo(a));
-- order is not important, in middle
create table foo(b int, index (a), a int);
-- use hash
create table foo(a int, index using hash (a));
-- use desc
create table foo(a int, index (a desc));
-- use functional index
create table foo(a varchar(10), index ((ltrim(a))));
insert into foo values('10');
insert into foo values(' 10');
set enable_seqscan = off;
set enable_indexscan = on;
explain select a from foo where ltrim(a) = '10';
以下特性不支持,
--= error, 不支持指定索引使用的列名长度
create table foo(a varchar(20), index (a(10)));
--= error, 不支持索引选项
create table foo(a int, index (a) comment 'not a correct syntax');
标签:index,lightdb,建表时,--,create,索引,int,table,foo
From: https://www.cnblogs.com/lddcool/p/17979763