查看“MySQL Table”的源代码
←
MySQL Table
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
=== 普通表 === create table test_seq ( ky int auto_increment, val varchar(50), ver json, primary key(ky) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE= utf8mb4_0900_ai_ci auto_increment = 10000000 CREATE INDEX i_test_seq_val ON test_seq(val); ==== 排序规则 ==== * utf8mb4_0900_ai_ci * utf8mb4_unicode_ci * utf8mb4_general_ci 当设置表的默认字符集为 utf8mb4 字符集但未明确指定排序规则时: * 在 MySQL 5.7 版本中,默认排序规则为 utf8mb4_general_ci * 在 MySQL 8.0 版本中,默认排序规则为 utf8mb4_0900_ai_ci utf8mb4_general_ci 一个遗留的校对规则,不支持扩展,它仅能够在字符之间进行逐个比较,这意味着 utf8mb4_general_ci 校对规则进行的比较和排序的时候速度很快。但没有实现 Unicode 排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。 utf8mb4_unicode_ci 是基于标准的 Unicode 来排序和比较,能够在各种语言之间精确排序。如对于德语和法语。 将 MySQL 8.0 版本的表导入到 MySQL 5.7 或以下版本时,可能会存在字符集无法识别的问题 * [Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci' ==== 自增主键 ==== * auto_increment 为自增主键(该列必须设为主键),一般使用 int(小于 42 亿)。不支持 decimal(10) 这种字段格式 * auto_increment 也可以使用 double 这种浮点数格式,自增 +1,但可以指定插入 10.1 这种(表中最大自增为 10.1 时,下一个系统自增是 11) * 一般排序规则默认为:utf8mb4_0900_ai_ci,ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 默认值是库带过来的 insert into test_seq(val, ver) values ('mysql', '{"v1":"10", "v2":"11"}'), ('db2', '{"v1":"8", "v3":"9"}') ==== JSON ==== SELECT ky, val, ver ->> '$.v1' v1, ver ->> '$.v2' v2, ver ->> '$.v3' v3 FROM test_seq * "->" 带引号,"->>"无引号 * 无字段则值返回空 === 分区表 === 最多支持 1024 个分区,同时总数量受库参数打开文件数量限制。 === 临时表 === CREATE TEMPORARY TABLE * 表结构、数据均存放在内存中 * 临时表在连接使用期间存在,断开时,MySQL 将自动删除表并释放所用的空间 * 不能用 rename 来重命名一个临时表,可以用 alter table 代替 === 内存表 === ENGINE='''MEMORY''' 表结构保存在磁盘上,数据存放在内存中(重启会只有结构)。MEMORY 快大概 20%。 内存表的数据存放在内存中,而内部临时表(如查询时产生的)一般放在内存中,但当内部临时表较大时,会自动转化为磁盘存储。内存表不会自动转换。 * 数据使用 hash 的方式存储,故只支持 = 或 <> * max_heap_table_size 默认为 16777216,单张表行数超过则报错 * 对于 varchar 等变长类型,使用最大的长度 * 可以有非唯一键 * 不能包含 BLOB 或者 TEXT * 支持 AUTO_INCREMENT * 不支持事务,表锁 * 可能会插入延迟,使读取优先
返回
MySQL Table
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
目录
文章分类
侧边栏
帮助
工具
链入页面
相关更改
特殊页面
页面信息