面试题

作者: 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 工具进行归档表,并且删除无用数据。

    相关文章

      网友评论

          本文标题:面试题

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