#25 号称 Redis 25 倍性能的 DragonflyDB
DB 2022-06-13#24 数据库排行
DB 2022-02-15#23 数据库设计规范
DB 设计规范 编码风格 2021-09-18随手写的,以命名为主(原来想写的是命名规范,结果写超了纲)。
#22 Golang MySQL
Golang DB MySQL 2021-06-04#21 MySQL 相关的命令汇总
MySQL DB 2021-01-06通过 apt 和 apt-file 列出 mysql 提供的所有可执行文件。
#20 MySQL 版本历史
DB MySQL 2021-01-06#19 MySQL 管理语句
DB MySQL 2020-03-25
#18
MySQL 字段类型 varchar
和 text
的差异
DB MySQL
2019-11-25
一次数据库表结构调整,引起了我对 MySQL 字段类型 TEXT
和 VARCHAR
的思考。
#17 MySQL 数据类型总结
DB MySQL 2019-08-25#16 一道有趣的 MySQL 小题目
DB MySQL 2019-04-19在开源中国每日动弹中看到这么一道题目,蛮有意思,还学到了一个新的 MySQL 语法:CTE。
#15 MySQL: wait for table metadata lock
MySQL DB 2019-03-29#14 MySQL 分区
DB MySQL 2019-02-01#13 MySQL 笔记
DB MySQL 2017-12-06几处小的知识点
#12 MySQL Boolean
DB MySQL 2017-09-01我们通常使用以下几种方式表示布尔值:
tinyint(1)
bit(1)
enum('Y','N')
在 MySQL 中 bool
, boolean
是 tinyint(1)
的别名。
如果只是一个 True OR False 的布尔型,没有比 bit(1)
更合适的了。
但是也有些时候,我们有好几个 bool 型用一个字段表示,最好用 bit(m)
,我也用过 int
型。
附:不同值的长度
Type | Bit | Byte | Note |
---|---|---|---|
tinyint |
8 | 1 | |
smallint |
16 | 2 | |
middleint |
24 | 3 | |
int |
32 | 4 | |
bigint |
64 | 8 | |
bit(m) |
m | (m+7)/8 | |
binary[(m)] |
m | m 默认值:1 | |
varbinary(m) |
(m+1) | ||
tinyblob |
(L+1) | 1B 长度,最长 255B | |
blob[(m)] |
(L+2) | 2B 长度,最长 64KB - 1 | |
mediumblob |
(L+3) | 3B 长度,最长 16MB - 1 | |
longblob |
(L+4) | 4B 长度,最长 4GB - 1 | |
enum('a',..) |
1/2 | 最多可以存储 2^16 - 1 个值 | |
set('a',..) |
1/2/3/4/8 | 最多可以存储 64 个值 |
PS: blob
如果指定长度 m
,MySQL 会选择足够存储数据的最小长度。
PS: MySQL set 类型
参考资料与拓展阅读
- MySQL 文档 (v8.0), 11.9 Using Data Types from Other Database Engines
- MySQL 文档 (v5.7), 11.9 Using Data Types from Other Database Engines
- MySQL 文档 (v5.6), 11.8 Using Data Types from Other Database Engines