• 常用的面试问题(二)


    一、索引的使用

    创建索引的情况:

    1、主建自动创建唯一索引

    2、频繁作为查询条件的字段应该要创建索引

    3、查询中其他表与其他表关联的字段,外建关系建立索引

    4、频繁更新字段,不适合创建索引

    5、where条件里用不到的字段补充创建索引

    6、查询中统计或者分组字段

    不需要创建索引的情况:

    1、表记录太少

    2、经常增删的表

    3、数据重复且分布平均的字段

     二、SQL语句的优化

    1、全局匹配我最爱(就是简历复合索引,能全部用上最好)

    2、最佳左前缀原则

    3、不要在索引上列上做任何计算

    4、存储引擎不能使用索引中的范围条件为右边的列

    5、尽量使用覆盖索引,减少select*

    6、mysql在使用不等于的时候索引会失效

    7、is null、is not null也无法使用索引

    8、like以通配符开头,会变成全表扫描(通配符要放在右边(如:like  ‘zhan%’))

    9、字符串不加单引号会导致索引失效

    10、少用or。用or来连接时,索引也会失效

    三、数据库常见的瓶颈

    CPU负担重:一般发生在数据装入内存和磁盘重读起数据的时候。  

     IO 负担重:装入数据远远大常见于内存容量时。

    服务器的性能瓶颈

    explain:计划执行

    怎么玩:explain+SQL

    四、数据库的分库分表场景优化

    1、硬件优化

    2、数据库调优、例如增加索引、优化慢查询

    3、引入缓存、减轻数据库的压力

    4、程序与数据库表优化,重构

    5、读写分离或分表分库

    五、redis持久化RDB和AOF

     Redis 持久化:

    提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.

     RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照

     AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。

     六Redis集群添加和删除节点(主和从)

    (1)启动集群:因为集群创建一次就行,所以直接启动所有节点服务即可

    (2)查看服务器的运行状态:ps -ef | grep redis

    (3)登录其中一个节点,查看集群状态

    (4)我们将新建两个服务,在之前搭建的集群中新增两个节点(一主一从)

                步骤一:创建7007、7008文件夹,拷贝redis.conf文件到两个文件夹下,然后进行配置文件的修改

                步骤二:启动7007和7008俩个服务并查看服务状态。

    (5)先稍微看一下redis-trib脚本能怎么使用:

    (6)新增一个主节点7007(Master)

                查看集群节点状态:

    (7)为新节点7007分配slot槽

        步骤一:使用redis-trib命令的reshard,找到集群中的任意一个主节点,对其进行重新分片工作。

    (8)在最后,我们查看一下集群状态:

    (9)添加从节点(7008)到集群中

  • 相关阅读:
    通过 Web 服务共享 Windows 剪贴板
    bzoj 1007[HNOI2008]水平可见直线 半平面交
    c#读写INI
    c#获得伪静态页码
    c#判断部分
    c#网络通信
    C# 转换函数
    c#文件操作
    c#进制转换
    服务器端异步接受SOKCET请求
  • 原文地址:https://www.cnblogs.com/studygithub5208868/p/10680597.html
Copyright © 2020-2023  润新知