MySQL自增主键与面试题解析

版权申诉
0 下载量 198 浏览量 更新于2024-09-10 收藏 602KB PDF 举报
"MySQL55题含答案.pdf" 1、在MySQL中,自增主键的行为取决于存储引擎。对于MyISAM引擎,如果删除了ID为15、16、17的记录,然后重启MySQL,再插入新记录,ID会是18,因为MyISAM会将最大ID写入数据文件。然而,对于InnoDB引擎,删除这些记录后,如果重启数据库,再插入记录,ID将是15,因为InnoDB只在内存中保存自增ID,重启后会丢失。 2、MySQL的技术特点包括:多线程支持,允许多种客户端连接;使用SQL语言;支持多种数据库引擎如MyISAM和InnoDB;提供丰富的API和管理工具;并且其InnoDB引擎支持事务处理,具有ACID特性。 3、Heap表,也称为临时表,存储在内存中,用于快速数据处理。它们不支持BLOB或TEXT字段,只允许基本的比较运算符,不支持 AUTO_INCREMENT,索引字段不能为NULL。 4、MySQL服务器的默认端口是3306,这是连接MySQL服务时通常使用的通信端口。 5、与Oracle相比,MySQL的优势在于:它是开源的,用户可以免费使用;具有跨平台性,易于移植;提供了图形化界面工具,如MySQL Query Browser;运行速度快,适用于中小型应用。 6、FLOAT和DOUBLE都是浮点数类型。FLOAT有8位精度,占用4个字节,而DOUBLE有18位精度,占用8个字节,因此DOUBLE能表示更大范围和更精确的数值。 7、CHAR_LENGTH函数返回字符串的字符数,而LENGTH函数返回字符串的字节数。对于非Unicode字符集,两者结果相同;但对于Unicode或其他多字节字符集,CHAR_LENGTH计算字符数,LENGTH计算字节数,可能不同。 8、MySQL中的InnoDB存储引擎支持四种事务隔离级别:READ UNCOMMITTED(读未提交),可能导致脏读;READ COMMITTED(读已提交),防止脏读但可能出现不可重复读;REPEATABLE READ(可重复读),防止脏读和不可重复读,但在某些情况下可能出现幻读;SERIALIZABLE(串行化),最高隔离级别,完全避免了脏读、不可重复读和幻读,但性能最低。 9、ENUM在MySQL中用于定义列,该列只能接受预定义的一组值。例如,创建一个size列,它只能是'Small'、'Medium'或'Large',可以这样定义:`CREATE TABLE size (name ENUM('Small', 'Medium', 'Large'))`; 以上是对MySQL面试题的部分解答,涵盖了自增主键行为、存储引擎特性、MySQL技术特点、Heap表、默认端口、与Oracle的对比、浮点数类型区别、字符长度函数以及事务隔离级别等知识点。