/assets/images/avatar.jpeg

Harry's Space

MySQL ORDER BY 如何实现排序的?

MySQL是如何进行排序的?

假设有一个表t结构如下图所示: https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

id为主键,type上建有索引,那么如果要查类型为1,val最小的1000行,那么SQL语句如下: SELECT type, val, detail FROM t WHERE type = 1 ORDER BY val LIMIT 1000;

MySQL 脏页刷盘

什么是脏页?

InnoDB在处理更新语句时,先写内存再写redo log,并不会立即将数据页的更新落地到磁盘(WAL机制),这就会产生升内存数据页和磁盘数据页的数据不一致的情况,这种数据不一致的数据页称为脏页,当脏页写入到磁盘(这个操作称为flush)后,数据一致后称为干净页。

MySQL 和 NoSQL基础知识概述

MySQL

索引

  • B+Tree

    • 平衡树,查找树,所有叶子节点位于同一层

    • 进行查找时首先再根节点进行二分查找,找到一个key所在的指针,然后递归的在指针所指向的节点进行查找,直到查到叶子节点,然后在叶子节点二分查找,找出key所对应的data

数据库基础知识概述

事务

  • ACID

    • 原子性

    • 隔离性

    • 一致性

    • 持久性

      • 应对系统崩溃,可以用Redo Log恢复
  • AUTOCOMMIT:MySQL默认采用自动提交,不显示start transaction,每个查询都会被当成一个事务执行并自动提交