mysql 查询结构组合_MySQL的查询和结构

多表关联查询:

交叉连接:

交叉连接的表现:行数相乘、列数相加

内连接:

内连接也叫等值连接,内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行

隐式内连接:select * from A,B where A.id=B.id

显示内连接:seect * from A inner join B ON A.id =B.id

外连接:

外连接需要有主表或者保留表的概念

左外连接:保留表有的一定有

cc525f7b4afd20279ebe95233f093d1d.png

分页查询:

MySQL的分页关键字是:LIMIT

LIMIT关键字不是SQL92标准提出的关键字,它是MySQL独有的语法。

通过Limit关键字,MySQL实现了物理分页。

分页分为逻辑分页和物理分页

逻辑分页:将数据库中的数据查询到内存之后再进行分页。

物理分页:通过LIMIT关键字,直接在数据库中进行分页,最终返回的数据,只是分页后的数据

子查询:

允许把一个查询嵌套在另一个查询当中(不建议使用因为性能不太好)

MySQL架构

e1239a11f412bd9962281a02b7473eaf.png

执行流程:

aa95efcd5ba6fce25695b17755ed1423.png

存储引擎:

存储引擎是针对表的

查看存储引擎的命令:show engines(必须进入到MySQL客户端)

974791d978521c8442633fc4b8e7599b.png

日志文件

常见的日志文件包括:

错误日志、二进制日志、查询日志、慢查询日志和 InnoDB 引擎在线 Redo 日志、中继日志等。

数据文件

查看MySQL数据文件:SHOW VARIABLES LIKE ‘%datadir%’;

.frm文件:主要存放与表相关的数据信息,主要包括表结构的定义信息

.ibd和.ibdata文件:用来存储InnoDB存储引擎的表数据和索引信息

.myd文件:主要用来存储使用MyISAM存储引擎的表数据信息。

.myi文件:主要用来存储使用MyISAM存储引擎的表数据文件中任何索引的数据树。

MySQL索引

使用索引的主要目的是为了优化查询速度

索引分为

单例索引:

1.普通索引

2.唯一索引

3.主键索引

组合索引:

* 在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。

全文索引,只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引。

空间索引(不常用)

索引的使用:

CREATE INDEX index_name ON table(column(length)) 创建索引

DROP INDEX index_name ON table 删除索引

索引的存储结构:

B Tree和B+ Tree的特点与区别

* 树的高度一般都是在2-4这个高度,树的高度直接影响IO读写的次数。

* 如果是三层树结构---支撑的数据可以达到20G,如果是四层树结构---支撑的数据可以达到几十T

*  B Tree和B+ Tree的最大区别在于非叶子节点是否存储数据的问题。B Tree是非叶子节点和叶子节点都会存储数据。而B+ Tree只有叶子节点才会存储数据,而且存储的数据都是在一行上,而且这些数据都是有指针指向的,也就是由顺序的。

非聚集索引

* 叶子节点只会存储数据行的指针,简单来说数据和索引不在一起,就是非聚集索引。

* 主键索引和辅助索引都会存储指针的值

聚集索引(InnoDB)

* 主键索引(聚集索引)的叶子节点会存储数据行,也就是说数据和索引是在一起,这就是聚集索引。

* 辅助索引只会存储主键值

* 如果没有没有主键,则使用唯一索引建立聚集索引;如果没有唯一索引,MySQL会按照一定规则创建聚集索引。

c5baf3e9f3e3031875a602893ec0159d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值