对象管理
创建和管理库
本文主要介绍库的创建、删除、修改的基本SQL操作,以及库命名规范。
创建和管理库
SQL语句
库命名规范
结合具体业务进行库的命名,建议长度不要超过20个字符。
创建和管理表
本文介绍创建和管理数据表的基本 SQL 操作和规范。
创建和管理表
SQL 语句参阅:
- CREATE TABLE (opens new window)
- SHOW TABLES (opens new window)
- DROP TABLE (opens new window)
- ALTER TABLE (opens new window)
表设计
ZnBase中,当您在建表时未显示定义主键时,ZnBase将自动添加一个隐藏列rowid作为主键。
在进行ZnBase表设计过程中,有以下几点需要注意:
尽量选择有意义的列作为主键;
不推荐使用复杂的数据类型;
需要JOIN的字段,数据类型建议保证绝对一致,避免隐式类型转换出现问题;
出于为性能考虑,尽量避免存储超宽表。单行总数据大小不能超过64MB,数据长度过大的字段最好拆分到另外的表。
创建和管理索引
本文介绍创建和管理索引的基本 SQL 操作和规范。
创建和管理索引
SQL 语句参阅:
- CREATE INDEX (opens new window)
- SHOW INDEX (opens new window)
- DROP INDEX (opens new window)
- ALTER INDEX (opens new window)
索引命名规范
- 唯一索引:
uk_[表名称简写]_[字段名简写]
- 普通索引:
idx_[表名称简写]_[字段名简写]
- 多单词组成的 column_name,取尽可能代表意义的缩写。
索引设计
- 单张表的索引数量及每个索引中的字段数没有限制,但注意索引过多会影响性能
- 唯一索引建议由3个以下字段组成。
- 尽量不要在频繁更新的列上创建索引
- 选择区分度大的列建立索引,不在低基数列上建立索引。
- 定期删除一些长时间未使用过的索引。
- 新的SELECT, UPDATE, DELETE上线,先经过EXPLAIN确认索引的正确性。
- 支持在WHERE条件索引列上使用函数,因为支持函数索引。
- 最左前缀原则,使用联合索引时,从左向右匹配,比如索引 idx_c1_c2_c3 (c1,c2,c3),相当于创建了 (c1)、(c1,c2)、(c1,c2,c3) 三个索引,WHERE 条件包含上面三种情况的字段比较则可以用到索引,但像 WHERE c1=a and c3=c 只能用到 c1 列的索引,像 c2=b and c3=c 等情况就完全用不到这个索引。