综合面试题
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、mysql的技术特点是什么?
Mysql数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛的应用程序编程接口和管理工具。
3、Heap表是什么?
HEAP表存在于内存中,用于临时高速存储。
BLOB或TEXT字段是不允许的
只能使用比较运算符=,<,>,=>,= <
HEAP表不支持AUTO_INCREMENT
索引不可为NULL
4、mysql服务器默认端口是什么?
3306
5、与Oracle相比,mysql有什么优势?
Mysql是开源软件,随时可用,无需付费。
Mysql是便携式的
带有命令提示符的GUI。
使用Mysql查询浏览器支持管理
6、如何区分FLOAT和DOUBLE?
以下是FLOAT和DOUBLE的区别:
浮点数以8位精度存储在FLOAT中,并且有四个字节。
浮点数存储在DOUBLE中,精度为18位,有八个字节。
7、CHAR和VARCHAR的区别?
CHAR和VARCHAR类型在存储和检索方面有所不同
CHAR列长度固定为创建表时声明的长度,长度值范围是1到255
当CHAR值被存储时,它们被用空格填充到特定长度,检索CHAR值时需删除尾随空格
8、列的字符串类型可以是什么?
字符串类型是:
SET
BLOB
ENUM
CHAR
TEXT
VARCHAR
9、如何获取当前的mysql版本?
SELECT VERSION();用于获取当前Mysql的版本。
10、mysql驱动程序是什么?
以下是Mysql中可用的驱动程序:
PHP驱动程序
JDBC驱动程序
ODBC驱动程序
CWRAPPER
PYTHON驱动程序
PERL驱动程序
RUBY驱动程序
CAP11PHP驱动程序
Ado.net5.mxj
11、主键和候选键有什么区别?
表格的每一行都由主键唯一标识,一个表只有一个主键。
主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用
12、mysql数据库服务器性能分析的方法命令有哪些?
Show status
•一些值得监控的变量值:
•Bytes_received和Bytes_sent
•和服务器之间来往的流量。
•Com_*服务器正在执行的命令。
•Created_*在查询执行期限间创建的临时表和文件。
•Handler_*存储引擎操作。
•Select_*不同类型的联接执行计划。
•Sort_*几种排序信息。
•Show session status like ‘Select’;
•Show profiles
•SET profiling=1;
•Show profiles\G
•Show profile;
13、如何控制HEAP表的最大尺寸?
Heal表的大小可通过称为max_heap_table_size的Mysql配置变量来控制。
14、怎样才能找出最后一次插入时分配了哪个自动增量?
LAST_INSERT_ID将返回由Auto_increment分配的最后一个值,并且不需要指定表名称。
15、mysql查询是否区分大小写?
不区分
16、InnoDB是什么?
lnnoDB是一个由Oracle公司开发的Innobase Oy事务安全存储引擎。
17、如何输入字符为十六进制数字?
如果想输入字符为十六进制数字,可以输入带有单引号的十六进制数字和前缀(X),或者只用(Ox)前缀输入十六进制数字。
如果表达式上下文是字符串,则十六进制数字串将自动转换为字符串
18、mysql表中允许有多少个TRIGGERS?
在Mysql表中允许有六个触发器,如下:
BEFORE INSERT
AFTER INSERT
BEFORE UPDATE
AFTER UPDATE
BEFORE DELETE and
AFTER DELETE
19、mysql中有哪几种锁?
MyISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁
表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低
行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高
世界上最美的风景,是自己努力的模样