MySQL面试精华:主键重启策略、技术特点与数据类型详解

需积分: 5 0 下载量 78 浏览量 更新于2024-08-03 收藏 32KB DOCX 举报
1. **MySQL自增主键行为**: 当在MyISAM和InnoDB类型的表中插入自增主键时,两者的处理方式不同。MyISAM表将最大自增ID存储在数据文件中,因此即使删除记录并重启,新插入记录的ID仍将是之前的最大值(如18)。然而,InnoDB表仅将最大ID保存在内存中,重启或优化操作会导致丢失这个信息,所以新插入的记录ID将从上次删除前的序列继续(如15)。 2. **Mysql技术特点**: Mysql作为开源数据库,具有多线程SQL服务器,支持多种客户端程序和库,提供不同的后端选项,拥有广泛的应用程序编程接口(API)和管理工具。它作为轻量级的选择,易于部署和管理,且免费使用。 3. **Heap表与限制**: HEAP表是内存中的临时存储区域,主要适用于临时数据,不适合长期存储。它不支持BLOB或TEXT字段,只允许基本比较运算,且不支持自动递增功能,索引也不能为NULL。 4. **MySQL服务器配置**: Mysql服务器的默认网络端口是3306,这意味着客户端连接通常连接到该端口来访问数据库服务。 5. **Mysql与Oracle比较**: Mysql的优势在于它是开源的,成本较低,便于移植,并且提供了命令行界面和图形用户界面(如MySQL Workbench)。此外,Mysql还提供了强大的查询浏览和管理工具。 6. **FLOAT与DOUBLE的区别**: FLOAT以8位精度存储,占用4个字节,适合存储较小的浮点数;而DOUBLE精度更高,为18位,占用8个字节,更适合需要更高精度的数值计算。 7. **CHAR_LENGTH与LENGTH的区别**: CHAR_LENGTH返回字符串中的实际字符数,不考虑空格,而LENGTH则返回包括空格在内的字节数。对于拉丁字符,两者相同,但在处理多字节字符集时,两者的结果会有差异。 8. **InnoDB事务隔离级别**: InnoDB支持四种事务隔离级别:readuncommitted(读未提交),readcommitted(避免脏读),repeatableread(可重复读),和serializable(串行化,保证事务的完整性和一致性)。每个级别确保了数据的一致性,但并发性能逐渐降低。 9. **Mysql ENUM的使用**: ENUM用于创建表时定义一组预设的字符串值,例如大小写枚举(Smail, Medium, Large)。插入时,字段只能取这些预定义的值,有助于数据规范化和减少数据错误。 这些知识点概述了MySQL的基础特性、表结构差异、事务管理以及常见数据类型的区别,涵盖了面试中可能被问及的关键点。