1、有以下SQL: explain SELECT * FROM emp FORCE INDEX (emp_mgr) where job ='SALESMAN'; 其中JOB列上有索引。 创建了mgr列上索引: CREATE INDEX emp_mgr on emp(mgr); 其他列上无索引。 请问,上述SQL最终会采用何种访问方式 D
A、使用emp_mgr索引
B、报语法错误
C、使用JOB列索引
D、全表扫描
2、在mysql中,下面那些语句可以删除数据库中的用户? ABCD
A、drop user username@'%';
B、drop user username@ localhost;
C、delete from user where User="test" and Host="localhost";
D、drop user username;
3、在 MySQL 中执行 create table t(id int primary key)engine=innodb;然后继续执行 create temporary table t(id int) engine=myisam; 请问执行 show create table t;这条命令会显示普通表的创建命令还是临时表的命令? A
A、CREATE TEMPORARY TABLE `t` (`id` int DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
B、CREATE TABLE `t` (`id` int NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
show tables 语句不会列出临时表,在information_schema也不存在临时表信息。
show create table可以查看临时表。
4、ResultSet的主要作用是? C
A、链接数据库
B、执行存储过程
C、缓存数据结果集
D、删除数据
MySQL临时表相关参数:
tmpdir:
这个参数是临时目录的配置,在5.6以及之前的版本,临时表/文件默认都会放在这里。这个参数可以配置多个目录,这样就可以轮流在不同的目录上创建临时表/文件,如果不同的目录分别指向不同的磁盘,就可以达到分流的目的。
innodb_tmpdir:
这个参数只要是被DDL中的排序临时文件使用的。其占用的空间会很大,建议单独配置。这个参数可以动态设置,也是一个Session变量。
slave_load_tmpdir:
这个参数主要是给BinLog复制中Load Data时,配置备库存放临时文件位置时使用。因为数据库Crash后还需要依赖Load数据的文件,建议不要配置重启后会删除数据的目录。
internal_tmp_disk_storage_engine:
当隐式临时表被转换成磁盘临时表时,使用哪种引擎,默认只有MyISAM和InnoDB。5.7及以后的版本才支持。8.0.16版本后取消的这个参数。
internal_tmp_mem_storage_engine:
隐式临时表在内存时用的存储引擎,可以选择Memory或者Temptable引擎。建议选择新的Temptable引擎。
default_tmp_storage_engine:
默认的显式临时表的引擎,即用户通过SQL语句创建的临时表的引擎。
tmp_table_size:
min(tmp_table_size,max_heap_table_size)是隐式临时表的内存大小,超过这个值会转换成磁盘临时表。
max_heap_table_size:
用户创建的Memory内存表的内存限制大小。
big_tables:
内存临时表转换成磁盘临时表需要有个转化操作,需要在不同引擎格式中转换,这个是需要消耗的。如果我们能提前知道执行某个SQL需要用到磁盘临时表,即内存肯定不够用,可以设置这个参数,这样优化器就跳过使用内存临时表,直接使用磁盘临时表,减少开销。
temptable_max_ram:
这个参数是8.0后才有的,主要是给Temptable引擎指定内存大小,超过这个后,要么就转换成磁盘临时表,要么就使用自带的overflow机制。
temptable_use_mmap:
是否使用Temptable的overflow机制。




