MySQL面试题, VARCHAR100 和 VARCHAR10 的区别是什么?
MySQL面试题, VARCHAR100 和 VARCHAR10 的区别是什么?
QA
Step 1
Q:: VARCHAR(100) 和 VARCHAR(10)
的区别是什么?
A:: VARCHAR(100) 和 VARCHAR(10) 的主要区别在于它们所能存储的字符数量。VARCHAR(100) 最多可以存储 100 个字符,而 VARCHAR(10) 最多只能存储 10 个字符。在 MySQL 中,VARCHAR 类型用于存储变长字符,实际存储时只占用实际字符的长度加一个字节(用于存储长度信息)。因此,VARCHAR(100)
可以容纳更长的字符串,但在数据冗余和存储效率方面需要根据实际需求选择合适的长度。
Step 2
Q:: 什么是索引?MySQL 中的索引有哪些类型?
A:: 索引是一种用于加速数据库查询速度的数据结构。MySQL 中的索引类型包括:1. 主键索引(Primary Key Index),2. 唯一索引(Unique Index),3. 普通索引(Index),4. 全文索引(Fulltext Index),5.
组合索引(Composite Index)。索引用于提高查询效率,但会增加写操作的开销,因此需要合理设计。
Step 3
Q:: MySQL 中的事务是什么?其四个特性(ACID)是什么?
A:: 事务是指一组操作的集合,这些操作要么全部执行成功,要么全部回滚。事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。这些特性确保了数据库操作的可靠性和一致性,特别是在处理复杂的业务逻辑时。
Step 4
Q:: MySQL 中的存储引擎有哪些?它们的区别是什么?
A:: MySQL 常见的存储引擎包括 InnoDB、MyISAM、MEMORY、CSV 和 ARCHIVE 等。InnoDB 支持事务、外键,并具有良好的崩溃恢复能力;MyISAM 不支持事务,适合读多写少的应用场景;MEMORY 存储引擎将数据存放在内存中,读写速度快但数据不持久化;CSV 和 ARCHIVE 则适合存储大量归档数据。选择存储引擎需要根据具体的应用需求进行权衡。