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线程在Execute from server中记录relay log log的操作。
10
、简述数据库分库分表?(水平、垂直)
答:(1)数据库分表???一张表按照一定的规则分解成不同的实体表。比如纵向划分和横向划分?垂直划分:将不同功能和模块的数据放到不同的表中,但是如果同一个模块的数据量太大,就会出现性能瓶颈。横向划分:纵向划分解决 不是大表的瓶颈。如果同一个函数中表的数据量太大,就必须对表进行划分,这就是横向划分的通俗理解:纵向划分---划分成不同的模块表;横向划分-- 划分同一个模块下的多个表 (2) 分库将一堆数据存储在不同的数据库中。上面提到的都是在同一个数据库上的,子数据库又分为不同的数据库。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 彻底理解 Python 中的类01/09
- ♥ python有什么编辑器08/28
- ♥ 如何处理python中的异常值09/25
- ♥ python循环出现elif错误是什么原因11/03
- ♥ python导入模块的精髓11/04
- ♥ python中匿名函数的命名规则09/15
内容反馈