1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?
(1)如果表的类型是MyISAM,那么是18
因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。
(2)如果表的类型是InnoDB,那么是15
InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。
2、如何区分FLOAT和DOUBLE
以下是FLOAT和DOUBLE的区别: 浮点数存储在FLOAT中,精度为8位,有四个字节。 浮点数存储在DOUBLE中,精度为18位,有八个字节。
3、myisamchk是用来做什么的?
它用来压缩MyISAM表,这减少了磁盘或内存使用。
4、federated表是什么?
federated表,允许访问位于其他服务器数据库上的表。
5、如果一个表有一列定义为TIMESTAMP,将发生什么?
每当行被更改时,时间戳字段将获取当前时间戳。
6、列设置为AUTOINCREMENT时,如果在表中达到最大值,会发生什么情况?
停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。
7、可以使用多少列创建索引?
任何标准表最多可以创建16个索引列。
8、MYSQL数据表在什么情况下容易损坏?
服务器突然断电导致数据文件损坏。 强制关机,没有先关闭mysql服务等。
9、Mysql中有哪几种锁?
MyISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低
行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高