面试题

作者: noodlesbook | 来源:发表于2020-02-09 14:27 被阅读0次

1、管理员在高可用架构维护的职责

  1. 搭建:MHA+VIP+SendReport+BinlogServer
  2. 监控及故障处理
  3. 高可用架构的优化
    核心是:尽可能降低主从的延时,让MHA花在数据补偿上的时间尽量减少。
    5.7 版本,开启GTID模式,开启从库SQL并发复制。

2、单表查询

2、mysql聚合函数GROUP_CONCAT
select 不支持结果集是1对多行的显示方式
解决方法:使用GROUP_CONCAT函数,列以行的方式显示

3、having 后过滤
应用场景:需要在group by + 聚合函数后,再做判断过滤使用
例:统计中国,每个省的总人口,只显示总人口数大于500W信息
select district,sum(population) from world.city where countrycode='CHN' group by district having sum(population) >5000000;

4、order by 排序应用
统计中国,每个省的总人口,只显示总人口数大于500W信息,并且按照总人口数从大到小排序输出
select district,sum(population) from world.city where countrycode='CHN' group by district having sum(population) >5000000 order by sum(population) desc;

5、limit 应用
作用:分页显示结果集
例:统计中国,每个省的总人口,只显示总人口数大于500W信息,并且按照总人口数从大到小排序输出,只显示前5名
select district,sum(population) from world.city where countrycode='CHN' group by district having sum(population) >5000000 order by sum(population) desc limit 5;

需求:显示6-10名
limit 5,5 前一个5,跳过5行;后一个5,显示5行

需求:显示3-5名
limit 2,3 显示3行,跳过2行

6、统计每个库,所有表的个数、表名
select table_schema,count(table_name) ,group_concat(name) from information_schema.tables group by table_schema;

7、统计每个库的占用空间总大小
一张表的大小公式:avg_row_lengthtable_rows+index_length
select table_schema,sum(avg_row_length
table_rows+index_length) from information_schema.tables group by table_schema;

8、查询业务数据库(系统库除外),所有非INNODB表。
select table_schema,table_name from information_schema.tables where engine != 'innodb' and table_schema not in ('sys','performance_schema','information_schema','mysql');

9、查询业务数据库(系统库除外),所有非INNODB表。将所有非INNODB表转换为INNODB表。
select concat ("alter table",table_schema,".",table_name,"engine=innodb") from information_schema.tables where engine != 'Innodb' and table_schema not in ('sys','performance_schema','information_schema','mysql') into outfile '/tmp/alter.sql';

注意:如果有报错,需要在配置文件中添加配置;
vim /etc/my.cnf
[mysqld]
secure-file-priv=/tmp

  • 配置完执行导出的sql语句文件
    mysql>source /tmp/alter.sql

3、union 和 union all 区别

union : 聚合两个结果集,会自动进行结果集去重复。
union all : 聚合两个结果集,不会去重复。

4、redis持久化

image.png
  1. redis 持久化方式有哪些?有什么区别?
    rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能,非实时持久化。
    aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog,实时持久化。

  2. 如果写入数据,没有触发持久化条件,关闭redis会不会持久化?
    答:应该问怎么关? shutdown,pkill,kill,killall会持久化,kill -9不会持久化

keys * //十分危险的命令,线上禁止使用

redis的作用:可以作为缓存数据库,MySQL数据库的补充,应用优先在redis取值,redis取到值,则返回,如果没取到值,则到MySQL取值,然后应用转义取到的值存到redis

redis的数据类型及应用场景
字符串:1、session 共享,2、常规计数:微博数,粉丝数,订阅、礼物
字典(hash类型):存储部分变更的数据,如用户信息等。最接近mysql的数据结构
列表:消息队列系统、比如sina微博
集合:案例:在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。
有序集合:排行榜应用,取TOP N操作

DNS服务器
在阿里云、或者自己搭
A记录与CNAME
A记录将域名绑定的IP
CNAME就是将域名绑定到域名

问:2亿行的表,想要删除其中1000w,你们公司怎么做的?假如是按照时间列条件。
答:1、如果2亿行数据表,还没有生成,建议在设计表时,采用分区表的方式(按月range),然后删除时truncate
2、如果2亿行数据表,已经存在,建议使用pt-archive 工具进行归档表,并且删除无用数据。

相关文章

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 高阶面试题

    webpack面试题 面试题:webpack插件 Git面试题 面试题:git常用命令 面试题:解决冲突 面试题:...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

  • ios面试题

    初级面试题 中级面试题 高级面试题 swift篇

  • Android超实用最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

  • Android最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

网友评论

      本文标题:面试题

      本文链接:https://www.haomeiwen.com/subject/frogxhtx.html