网站首页 > 博客文章 正文
1、MySQL数据库四种特性,不包括()
A.原子性
B.事务性
C.一致性
D.隔离性
解释:事物的四种特性ACID,即:原子性、一致性、隔离性、持久性
2、MySQL报错error 1062 的意思是()
A.连接数据库失败,没有连接数据库的权限
B.字段值重复,入库失败
C.未定义用户对数据表的访问权限
D.删除数据库文件失败
解释:error 1062是最容易遇到的错误,即主键冲突引起的从库复制中断
3、MySQL主从架构如下:
主库 从库
192.169.1.1 192.168.1.2
需要在从库上采用mysqldump备份并记录主库binlog、Position点,需要加哪个参数(不考虑其他参数) ()
A.--master-date
B.--single-transaction
C.--dump-slave
D.--opt
解释:如果在从库备份并记录主库位点,需要加--dump-slave参数,一般添加新从库时使用,但需要注意此参数会引起备份的从库复制断开。
4、以下哪个不能有效减小从库延迟时间()
A.主库进行update操作时where后条件没有索引,添加索引
B.主库有大事物,增加缓存,异步写入数据库,减少直接对db的大量写入
C.主库并发更新写入频繁,从库设置innodb_flush_log_at_trx_commit=1及sync_binlog=1
D.数据库中存在大量myisam表,修改表结构为innodb存储引擎的表
解释:主库并发更新写入频繁,从库设置这两个参数0、0或者2、0;
innodb_flush_log_at_trx_commit=0 每秒将log_buffer刷新到logfile,并且将日志同步刷新到磁盘。该模式下,在事务提交的时候,不会主动触发写入磁盘的操作;
innodb_flush_log_at_trx_commit=1 每次commit将log_buffer刷新到logfile,并且将日志同步刷新到磁盘;
innodb_flush_log_at_trx_commit=2 每次commit将刷新到log_buffer,但是flush(刷到磁盘)操作并不会同时进行,每秒将日志刷新到磁盘;
sync_binlog=0 像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。
sync_binlog=1 MySQL在每写N次二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。如果启用了autocommit,那么每一个语句statement就会有一次写操作;否则每个事务对应一个写操作。
5、表test(a int,b int,time date)涉及以下3条sql:
select * from test where a=1 and b=1;
select * from test where b=1;
select * from test where b=1 order by time desc;
只建一个索引,如何建最优()
A.idx_ab(a,b)
B.idx_ba(b,a)
C.idx_abtime(a,b,time)
D.idx_btime(b,time)
解释:在有oracle by排序时,排序字段必须要有索引,第一条sql创建idx_ab(a,b)最优,但是第二条sql用不到,而idx_ba(b,a)索引排序用不到,综上idx_btime(b,time)最优
6、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的:()
A.数据块
B.索引值
解释:索引值,行级锁锁的是这条记录
7、关于MySQL权限说法正确的是()
A.管理权限(如super, process, file等)不能够指定某个数据库,on后面必须跟 *.*
B.如需要truncate权限只需授予drop权限
C.super权限允许用户终止任何查询,但不允许修改全局变量的set语句
D.建立一个用户时,需要单独授予usage连接权限
解释:truncate权限需要create和drop权限;super权限允许用户终止任何查询;修改全局变量的SET语句建立一个用户,就会自动授予其usage权限(默认授予),无需再单独授予。
8、关于select count(*)和select count(1)以及select count(column)区别,说法错误的是()
A.如果表沒有主键, 那么count(1)比count(*)快
B.如果表有主键,那主键作为count的条件时候count(主键)最快
C.如果表没有主键,只有一个column的话,那count(column)最快
D.count(*)跟count(1)的结果一样,都包括对NULL的统计,而count(column)是不包括NULL的统计
解释:如果表没有主键,只有一个column的话,那count(*)最快
9、使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当()
A.使用WHERE子句
B.在GROUP BY后面使用HAVING子句
C.先使用WHERE子句,再使用HAVING子句
D.先使用HAVING子句,再使用WHERE子句
解释:GROUP BY HAVING分组后过滤固定格式
10、关于SQL优化,以下说明哪个是错误的()
A.类似分页功能的SQL,建议先用主键关联,然后返回结果集,效率会高很多
B.通常情况下,join的性能比较差,建议改造成子查询写法
C.多表联接查询时,关联字段类型尽量一致,并且都要有索引
D.尽可能不使用TEXT/BLOB类型,确实需要的话,建议拆分到子表中,不要和主表放在一起,避免SELECT* 的时候读性能太差
解释:具体SQL具体分析,不一定join就比子查询快
11、Linux操作系统下,关于MySQL大写小问题正确的是()
A.column(包括别名)、index、storedroutine和event names的大小写敏感
B.database、table(包括别名)的大小写敏感性可以通过系统参数“lower_case_table_names”来配置,等于1时大小写敏感
C.trigger、identifiers(标识符)的大小写敏感性受lower_case_table_names参数影响
D.数据敏感性:校对字符集(Collation)可通过show collation查看,其中“_ci”代表case-insensitive大小写不敏感,“_cs”代表case-sensitive大小写敏感,“_bin”的大小写敏感依赖于character的二进制编码
解释:column(包括别名)、index、storedroutine和event names不区分大小写;lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写;.trigger、identifiers(标识符)的大小写敏感性不受lower_case_table_names参数影响
12、MySQL delete from table where后哪项操作不会释放磁盘物理空间()
A.optimize table tablename;
B.alter table tablename add column ;
C.alter table tablename engine=innodb;
D.rename table tablename to tablename_new;
解释:前3个都会in-place数据,重新插入数据,从而达到释放碎片的目的,第四个只是修改元数据
13、MySQL在RR事物隔离级别下,更新条件为索引字段,并非唯一索引(包括主键索引)时,会通过Next-Key Lock解决幻读问题。以下哪项不会加此锁()
A.Inser into…
B.Select… from… for update;
C.Update…from… where
D.Insert into T select … from S where…;
解释:Inser into…只加行级锁,RR隔离级别通过MVCC避免
14、MySQLSleep线程过多,以下操作不正确的是()
A.设置interactive_timeout参数,减小wait_timeout等待超时时间
B.php程序不要使用长连接,java程序调整连接池
C.打开mysql慢查询
D.检查应用连接情况,增加连接数
解释:Sleep线程过多,主要是程序没有发送请求,可以缩短空闲超时时间,也可以从程序端配置间隔探活,而增加连接数不会从根本达到优化效果
15、表结构如下:
CREATE TABLE `test` (
`id`int(11) NOT NULL AUTO_INCREMENT,
`uid`int(11) DEFAULT NULL,
`name`char(20) DEFAULT '0' NOT NULL,
`phone` int(11) DEFAULT NULL,
`email`varchar(20) DEFAULT NULL,
PRIMARYKEY (`id`),
KEY`idx_name` (`name`(5)),
KEY`idx_phone` (`phone`),
KEY`idx_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULTCHARSET=utf8;
请问idx_name、idx_phone及idx_email索引长度分别是多少 ()
A.15,4,62
B.15,5,63
C.16,4,62
D.16,5,63
解释:utf8占3个字节,NULL占一个字节,not null不占用字节,int固定占用4个字节,变长字段需要记录长度占用2个字节
idx_name(`name`(5)) 虽然name(5)只对前5个字符加索引 5*3 总共15;
idx_phone(`phone`) int固定4个字节,NULL占一个字节,总共5;
idx_email (`email`) varchar(20) *3,NULL占一个字节,变长字段需要记录长度占用2个字节,总共63
BBCCD BACBB DDADB
原文: MYSQL轻松学公众号
猜你喜欢
- 2024-09-23 MySQL最重要的日志-binlog详解(mysqlbinlog日志内容)
- 2024-09-23 mysql 错误:packets out of order.
- 2024-09-23 MySQL 性能优化:8 种常见 SQL 错误用法
- 2024-09-23 常见的 MySQL 异常及处理方法(mysql故障处理)
- 2024-09-23 详解蓝鲸部署常见报错及解决方案汇总
- 2024-09-23 MySQL数据库“十宗罪”【十大经典错误案例】
- 2024-09-23 mysql1366错误:字符集冲突导致插入数据异常,解决方案
- 2024-09-23 mysql使用过程的错误记录(五)(mysql常见错误)
- 2024-09-23 mysql 使用过程的错误记录(一)(mysql语句错误)
- 2024-09-23 MYSQL存储引擎InnoDB(六十三):SQL压缩语法警告和错误
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)