字符集指的是一种从二进制编码到某类字符符号的映射。校对规则则是指某种字符集下的排序规则。
在 MySQL 中,每一种字符集都会对应一系列的校对规则。
MySQL 采用的是类似继承的方式来指定字符集的默认值,每个数据库以及每张数据表都有自己的默认值,他们逐层继承。比如:某个库中所有表的默认字符集,将是该数据库所指定的字符集(这些表在没有指定字符集的情况下,才会采用默认字符集) PS:整理自《Java 工程师修炼之道》
MySQL 索引使用的数据结构主要有 BTree 索引
和 哈希索引
。对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择哈希索引,查询性能最快;其余大部分场景,建议选择 BTree 索引。
MySQL 的 BTree 索引使用的是 B 树中的 B+Tree,但在两种主要的存储引擎里,它们的实现方式是不同的。
因此,在设计表的时候,不建议使用过长的字段作为主键,也不建议使用非单调的字段作为主键,这样会造成主索引频繁分裂。 PS:来自《Java 工程师修炼之道》