乱七八糟

1、MyISAM 存储引擎支持的最大表大小为 65536 TB,InnoDB 为 64 TB

2、DDL、DML、DQL
DDL ---> create、drop、alter(对表结构进行修改)
DML ---> insert、update、delete(对表内部的数据进行修改)
DQL ---> select

3、show create table: 获取详细的表定义信息

4、批量插入语法
INSERT INTO
表名
(列1, 列2, 列3, ...)
VALUES
(值1, 值2, 值3, ...),
(值4, 值5, 值6, ...),
(值7, 值8, 值9, ...),
...
这个特性可以使得 Mysql 在插入大量记录时,节省很多的网络开销,大大提高插入效率

5、DESC 表示按照字段进行降序排序,ASC 则表示升序排序,如果不写此关键字默认是升序排序,ORDER BY 后面可以跟多个不同的排序字段,并且每个排序字段可以有不同的排序顺序,如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序,依次类推,如果只有一个排序字段,则这些字段相同的记录将会无序排序

6、TIMESTAMP 的插入和查询都受当地时区的影响,更能反映出实际的日期,而 DATETIME 则只能反映出插入时当地的时区,其它时区的人查看数据必然会有误差的

7、UNIX_TIMESTAMP 和 FROM_UNIXTIME
UNIX_TIMESTAMP(date): 返回日期 date 的 UNIX 时间戳 (date 转时间戳)
FROM_UNIXTIME(unixtime): 返回 UNIXTIME 时间戳的日期值(时间戳转 yyyy-MM-dd HH:mm:ss)

8、MyISAM
.frm(存储表定义)
.MYD(存储数据)
.MYI(存储索引)
数据文件和索引文件可以放置在不同的目录,平均分布 IO,获得更快的速度

9、如果应用是以读操作和插入操作为主,只有极少数的更新和删除操作,并且对事务的完整性没有要求,没有并发写操作,那么可以选用 MyISAM,如果对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了查询和插入以外,还包括很多的更新、删除操作,那么应该优先选择 InnoDB 存储引擎,InnoDB 存储引擎支持行锁,可以有效地降低由于删除和更新导致的锁定

10、在 InnoDB 中 char 和 varchar 性能接近,至于选择哪种类型的衡量标准是 数据行 使用的 存储总量,由于 char 平均占用的空间多余 varchar,因此使用 varcahr 比较好,但是对于固定长度的字符串建议使用 char,例如性别、身份证号 等固定长度的信息

11、Mysql 中有两种 utf8 编码的子集,分别是 utf8mb3 和 utf8mb4,其中我们常说的 utf8 其实就是 utf8mb3 的别名

12、Mysql 的字符集包括字符集(CHARACTER) 和排序规则(COLLATION)两个概念
排序规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以 _ci、_cs、_bin 结束
_ci: 大小写不敏感
_cs: 大小写敏感
_bin: 二元,即比较是基于字符编码的值面与 language 无关
例如 utf8_general_ci 就是默认的排序规则,A 和 a 按照 utf8_general_ci 排序规则进行比较,则认为两个字符是相同的

posted @ 2023-11-27 20:31  变体精灵  阅读(8)  评论(0编辑  收藏  举报