1, 一张表, 里面有 ID 自增主键, 当 insert 了 17 条记录之后, 删除了第 15,16,17 条记录, 再把 MySQL 重启, 再 insert 一条记录, 这条记录的 ID 是 18 还是 15 ?
答:
(1)如果表的类型是 MySAM, 那么是 18.
因为 MySAM 表会把自增主键的最大 ID 记录到数据文件里, 重启 MySQL 自增主键的最大 ID 也不会丢失.
(2)如果表的类型是 InnoDB, 那么是 15.
InnoDB 表只是把自增主键的最大 ID 记录到内存中, 所以重启数据库或者对表进行 OPTIMIZE 操作, 都会导致最大 ID 的丢失.
2,MySQL 的技术特点是什么?
MySQL 数据库软件是一个客户端或服务器系统, 其中包括: 支持各种客户端程序和库的多线程 SQL 服务器, 不同的后端, 广泛的应用程序编程接口和管理工具.
3,Heap 表是什么?
HEAP 表存在于内存中, 用于临时高速存储. BLOB 或 TEXT 字段是不允许的 只能使用比较运算符 ,<,>,>, < HEAP 表不支持 AUTO_INCREMENT 索引不可为 NULL
4,MySQL 服务器默认端口是什么?
MySQL 服务器的默认端口是 3306.
5, 与 Oracle 相比, MySQL 有什么优势?
MySQL 是开源软件, 随时可用, 无需付费. MySQL 是便携式的 带有命令提示符的 GUI. 使用 MySQL 查询浏览器支持管理
6, 如何区分 FLOAT 和 DOUBLE?
以下是 FLOAT 和 DOUBLE 的区别: 浮点数以 8 位精度存储在 FLOAT 中, 并且有四个字节. 浮点数存储在 DOUBLE 中, 精度为 18 位, 有八个字节.
7, 区分 CHAR_LENGTH 和 LENGTH?
CHAR_LENGTH 是字符数, 而 LENGTH 是字节数. Latin 字符的这两个数据是相同的, 但是对于 Unicode 和其他编码, 它们是不同的.
8, 请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称, 以及逐级之间的区别?
SQL 标准定义的四个隔离级别为: readuncommited : 读到未提交数据 readcommitted: 脏读, 不可重复读 repeatableread: 可重读 serializable : 串行事物
来源: http://www.jianshu.com/p/15462dbda7f0