• MySQL 优化


    1、MySQL索引种类

    1.普通索引 2.唯一索引 3.主键索引 4.组合索引 5.全文索引

     

    2、索引在什么情况下遵循最左前缀的规则?

    最左前缀原理的一部分,索引index1:(a,b,c),只会走a、a,b、a,b,c 三种类型的查询,其实这里说的有一点问题,a,c也走,但是只走a字段索引,不会走c字段。
    索引是有序的,index1索引在索引文件中的排列是有序的,首先根据a来排序,然后才是根据b来排序,最后是根据c来排序


    3、主键和外键的区别?

    主键:唯一标识一条记录,不能有重复的,不允许为空
    外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值

    6、1000w条数据,使用limit offset 分页时,为什么越往后翻越慢?如何解决?
    答: 先查主键,在分页。 select * from tb where id in(select id from tb where limit 10 offset 20)


    7、什么是索引合并?
    答:索引合并,让一条sql可以使用多个索引。对这些索引取交集,并集,或者先取交集再取并集。从而减少从数据表中取数据的次数,提高查询效率。

    8、什么是覆盖索引?
    答:如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’

    9、简述数据库读写分离?
    答:主服务器master记录数据库操作日志到Binary log,从服务器开启i/o线程将二进制日志记录的操作同步到relay log(存在从服务器的缓存中),另外sql线程将relay log日志记录的操作在从服务器执行。

    10、简述数据库分库分表?(水平、垂直)
    (1)数据库分表
    把一张表按照一定的规则分解成不同的实体表。比如垂直划分和水平划分
    垂直切分:把不同功能,不同模块的数据分别放到不同的表中,但是如果同一个模块的数据量太大就会存在性能瓶颈
    水平切分:垂直切分解决不了大表的瓶颈,如果同一个功能中表的数据量过大,就要对该表进行切分,为水平切分
    通俗理解:垂直切分---分不同的模块表;水平切分---分同一个模块下的多个表
    (2)分库
    将一堆数据放到不同的数据库中保存,上面说的都是在同一个数据库上,分库是分到不同的数据库上

  • 相关阅读:
    【openCV学习笔记】【2】读取并播放一段视频
    Net WebApi中使用Swagger
    .pfx格式和.Cer格式的区别
    数字证书原理
    ASP.NET发送电子邮件
    WindowsAzure上把WebApp和WebService同时部署在一个WebRole中
    JS原型与原型链终极详解
    三、ASP.NET MVC Controller 控制器(二:IController控制器的创建过程)
    二、ASP.NET MVC Controller 控制器(一:深入解析控制器运行原理)
    一、ASP.NET Routing路由(深入解析路由系统架构原理)
  • 原文地址:https://www.cnblogs.com/justblue/p/13022275.html
Copyright © 2020-2023  润新知