diff --git a/notes/MySQL.md b/notes/MySQL.md index 5ade4c6a..713a9ef9 100644 --- a/notes/MySQL.md +++ b/notes/MySQL.md @@ -44,13 +44,13 @@ ## 1. InnoDB -InnoDB 是 MySQL 的默认事务型引擎,只有在需要 InnoDB 不支持的特性时,才考虑使用其它存储引擎。 +InnoDB 是 MySQL 默认的事务型存储引擎,只有在需要 InnoDB 不支持的特性时,才考虑使用其它存储引擎。 采用 MVCC 来支持高并发,并且实现了四个标准的隔离级别,默认级别是可重复读。 表是基于聚簇索引建立的,它对主键的查询性能有很高的提升。 -内部做了很多优化,包括从磁盘读取数据时采用的可预测性读,能够自动在内存中创建 hash 索引以加速读操作的自适应哈希索引,以及能够加速插入操作的插入缓冲区等。 +内部做了很多优化,包括从磁盘读取数据时采用的可预测性读、能够自动在内存中创建哈希索引以加速读操作的自适应哈希索引、能够加速插入操作的插入缓冲区等。 通过一些机制和工具支持真正的热备份。 @@ -112,7 +112,7 @@ FLOAT、DOUBLE 和 DECIMAL 都可以指定列宽,例如 DECIMAL(18, 9) 表示 主要有 CHAR 和 VARCHAR 两种类型,一种是定长的,一种是变长的。 -VARCHAR 这种变长类型能够节省空间,因为只需要存储必要的内容。但是在执行 UPDATE 时可能会使行变得比原来长,当超出一个页所能容纳的大小时,就要执行额外的操作,MyISAM 会将行拆成不同的片段存储,而 InnoDB 则需要分裂页来使行放进页内。 +VARCHAR 这种变长类型能够节省空间,因为只需要存储必要的内容。但是在执行 UPDATE 时可能会使行变得比原来长,当超出一个页所能容纳的大小时,就要执行额外的操作。MyISAM 会将行拆成不同的片段存储,而 InnoDB 则需要分裂页来使行放进页内。 VARCHAR 会保留字符串末尾的空格,而 CHAR 会删除。 @@ -126,7 +126,7 @@ MySQL 提供了两种相似的日期时间类型:DATATIME 和 TIMESTAMP。 它与时区无关。 -默认情况下,MySQL 以一种可排序的、无歧义的格式显示 DATATIME 值,例如“2008-01016 22:37:08”,这是 ANSI 标准定义的日期和时间表示方法。 +默认情况下,MySQL 以一种可排序的、无歧义的格式显示 DATATIME 值,例如“2008-01-16 22:37:08”,这是 ANSI 标准定义的日期和时间表示方法。 **TIMESTAMP** @@ -134,7 +134,7 @@ MySQL 提供了两种相似的日期时间类型:DATATIME 和 TIMESTAMP。 它和时区有关。 -MySQL 提供了 FROM_UNIXTIME() 函数把 Unxi 时间戳转换为日期,并提供了 UNIX_TIMESTAMP() 函数把日期转换为 Unix 时间戳。 +MySQL 提供了 FROM_UNIXTIME() 函数把 UNIX 时间戳转换为日期,并提供了 UNIX_TIMESTAMP() 函数把日期转换为 UNIX 时间戳。 默认情况下,如果插入时没有指定 TIMESTAMP 列的值,会将这个值设置为当前时间。