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、主键和外键的区别?

主键:唯一标识一条记录,不能有重复的,不允许为空

外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值

4、MySQL常见的函数?

sum 、 count 、 abs...

5、在对name做了唯一索引前提下,简述以下区别:

答:过滤出数据的同时,进行计数

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)分库

将一堆数据放到不同的数据库中保存,上面说的都是在同一个数据库上,分库是分到不同的数据库上

最新文章

  1. javascript——Array
  2. J2EE 第二阶段项目之编写代码(四)
  3. UVa 12563 Jin Ge Jin Qu hao【01背包】
  4. 初识hibernate
  5. Swift - 动画效果的实现方法总结(附样例)
  6. 百度map android sdk3.5实现定位 并跳转的指定坐标,加入标记
  7. iOS 枚举写法
  8. Redis 小白指南(三)- 事务、过期、消息通知、管道和优化内存空间
  9. python数据分析工具包(3)——matplotlib(一)
  10. shell打印 倒等腰三角形
  11. HDU1263水果
  12. nginx php-fpm conf文件编写
  13. 15个Node.js项目列表
  14. Making a view in a listview invisible android
  15. 使用GitHub Pages + Jekyll 建立博客
  16. NRF52832 能烧写代码 但是不运行 ,是因为没有烧写协议栈
  17. 三级级联查询省份名称和编码(保证名称不反复)的SQL语句
  18. 【BZOJ2879】[Noi2012]美食节 动态加边网络流
  19. 【海龟汤策略】反趋势交易策略源代码分享(基于BOTVS)
  20. Linux下Apache、PHP、MySQL默认安装路径

热门文章

  1. 请教Nutzwk项目,在beetl页面怎么用shiro标签呢?
  2. Buffer的使用
  3. Linux内存管理 - buddy系统
  4. redux详解
  5. Python——并发编程
  6. 14、SpringBoot------定制错误返回内容json格式
  7. Subversion简介
  8. eclipse环境Dynamic web module version 3.1版本的进步,简化Dynamic web object 中Servlet类的配置,不用web.xml配置<Servlet>
  9. LeetCode426.Convert Binary Search Tree to Sorted Doubly Linked List
  10. vc导出调用dll的两种方式