MySQL
mangoBUPT
爱玩,爱技术
展开
-
MySQL中order by的实现原理
分为两种,全字段排序和rowid排序。全字段排序MySQL会给每个线程分配一块内存用于排序,称为sort_buffer。语句的执行流程:初始化sort_buffer,确定放入select的字段找到满足条件的行取出select的字段存入sort_buffer中一直查找到不满足条件的为止对sort_buffer中的数据按照排序的字段做排序sort_buffer_size可以设置sort_buffer的大小。 如果要排序的数据量小于 sort_buffer_size,排序就在内存中完成。 但如原创 2021-03-21 09:24:56 · 482 阅读 · 1 评论 -
MySQL中group by的实现原理
在MySQL 中,GROUP BY 的实现同样有多种(三种)方式,其中有两种方式会利用现有的索引信息来完成 GROUP BY,另外一种为完全无法使用索引的场景下使用。GroupBy会默认按照分组的字段进行排序;如果不需要排序,可使用order by null使用松散(Loose)索引扫描实现 GROUP BYMySQL 完全利用索引扫描来实现GROUP BY ,并不需要扫描所有满足条件的索引键即可完成操作得出结果。Extra信息中显示:Using index for group-by 要利用到松散原创 2021-03-06 15:44:48 · 1867 阅读 · 1 评论 -
MySQL优化提高笔记
概述对于mysql的优化是一个综合性的技术,sql的优化只是其中的一种,其中主要包括表的设计合理化(符合3大范式)。添加索引(index) [普通索引、主键索引、唯一索引unique、全文索引]。分表技术(水平分割、垂直分割)。读写[写: update/delete/add]分离。合理设计表在表的设计中一定条件下要满足三范式,表的范式,是首先符合第一范式, 才能满足第二范式 , 进一步满足第三范式。第一范式: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据原创 2021-02-24 17:49:47 · 882 阅读 · 0 评论 -
面试官:数据库索引有什么优点?
引用《高性能MySQL》中的描述:原创 2021-02-23 19:57:43 · 912 阅读 · 1 评论 -
MySQL中union和union all的原理和区别
引用《高性能MySQL》的原文来说明:原创 2021-02-23 16:33:23 · 2046 阅读 · 0 评论 -
面试官:InnoDB和MyISAM区别是什么?
InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败;InnoDB 是聚集索引,MyISAM 是非聚集索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他.原创 2021-02-22 09:42:01 · 3068 阅读 · 2 评论