MySQL 面试题, MySQL 中 DATETIME 和 TIMESTAMP 有什么区别?
MySQL 面试题, MySQL 中 DATETIME 和 TIMESTAMP 有什么区别?
QA
Step 1
Q:: MySQL 中 DATETIME 和 TIMESTAMP 有什么区别?
A:: DATETIME 和 TIMESTAMP 都用于存储日期和时间,但有一些关键区别:1. 存储范围:DATETIME 范围为 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59',而 TIMESTAMP 范围为 '1970-01-01 00:00:01' 到 '2038-01-19 03:14:07'。2. 时区影响:TIMESTAMP 存储的是 Unix 时间戳,受时区影响,会自动转换为当前时区的时间;DATETIME 则不受时区影响,存储的是静态值。3. 存储空间:TIMESTAMP 占用 4 字节,而 DATETIME 占用 8
字节。
Step 2
Q:: MySQL 中如何选择索引类型?
A:: 选择索引类型取决于具体的查询需求和表结构:1. PRIMARY KEY 索引:用于唯一标识表中的每一行。2. UNIQUE 索引:确保索引列中的所有值都是唯一的。3. FULLTEXT 索引:用于全文搜索,适用于大量文本数据。4. SPATIAL 索引:用于地理数据类型。5.
普通索引(INDEX):适用于加速查询的列。应根据查询的类型和表的使用情况选择合适的索引类型,以提高查询效率。
Step 3
Q:: MySQL 中 JOIN 有哪些类型?
A:: MySQL 中主要有以下几种 JOIN 类型:1. INNER JOIN:返回两个表中匹配的记录。2. LEFT JOIN:返回左表中的所有记录及其匹配的右表记录,没有匹配的右表记录则显示 NULL。3. RIGHT JOIN:返回右表中的所有记录及其匹配的左表记录,没有匹配的左表记录则显示 NULL。4.
FULL JOIN:返回两个表中所有匹配和不匹配的记录,没有匹配的部分显示 NULL(MySQL 需要通过 UNION 模拟 FULL JOIN)。