Mysql数据库第十三课-----------sql语句的拔高3--------直冲云霄

作者前言

✨✨✨✨✨✨
​ 作者介绍:

作者id:老秦包你会,
简单介绍:
喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨
个人主页::小小页面
gitee页面:秦大大

一个爱分享的小博主 欢迎小可爱们前来借鉴


sql语句的拔高

  • **作者前言**
  • MySQL高级
    • 索引
    • 分区
    • 图形化界面
  • 总结

MySQL高级

索引

目的在于提高查询效率,是对数据表里所有记录的引用指针。通过不断的缩小数据的获取范围,筛选出最终想要的结果,并且把随机的事件变成顺序的事件,总是通过同一种查找方式来锁定数
怎么理解呢?我来举个例子,查新华字典,查一个狗字,我们可以通过gou拼音来找,首先我们要先找到g,在g的范围内查找出o,然后在go的范围内查找出u
Mysql数据库第十三课-----------sql语句的拔高3--------直冲云霄_第1张图片
索引不同于约束。一张表中,索引可以只有一个字段(可能要求值唯一),也可以是多个字段组成索引,这样的索引叫作 联合索引 。即为想要提高查找速度,必须要通过这多个索引进行查找
我们回想之前的主键一个字段 唯一非空,联合主键多个字段,唯一非空,同理索引也一样

 查看索引
show index from table_name;

在这里插入图片描述
Mysql数据库第十三课-----------sql语句的拔高3--------直冲云霄_第2张图片
创建索引

create index ID on 学生表格1(age);
-- 创建索引
create index 索引名称 on table_name(字段名称(长度))
-- 如果指定字段是字符串,建议长度与字段长度一致。如果不是字符串,可以不填写长度部分

在这里插入图片描述

-- 唯一索引
create unique index 索引名称 on table_name (字段名称)
-- 联合索引
create index 索引名称 on table_name (column1, column2);
-- 删除索引
drop index 索引名称 on 表名;

Mysql数据库第十三课-----------sql语句的拔高3--------直冲云霄_第3张图片

分区

数据库中的数据是以文件的形势存在磁盘上的。一张表主要对应着三个文件, frm 存放表结构,myd 存放表数据,myi 存表索引。如果一张表的数据量太大,myd 、myi 就会变的很大,查找数据就会很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块。查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个磁盘放不下,这时候,可以把数据分配到不同的磁盘里面去。

就拿xlsx表格来讲
Mysql数据库第十三课-----------sql语句的拔高3--------直冲云霄_第4张图片
一张xlsx表格可以有多个子表,但是总体数据量不变,只是每个子表的存储变少了,而分区就是这个意思
–partition by range

CREATE TABLE table_name (
id int not null
,name varchar(30)
,age int default 0
,gender varchar(4) default '未知'
,cdate date not null
,week int not null
)
PARTITION BY RANGE (week) (
PARTITION w1 VALUES (1)
,PARTITION w2 VALUES (2)
,PARTITION w3 VALUES (3)
,PARTITION w4 VALUES (4)
,PARTITION w5 VALUES (5)
,PARTITION w6 VALUES (6)
,PARTITION w7 VALUES (7)
);

分区一般使用于数据很大的数据库中,如果数据较小的话一般不使用

图形化界面

在前面看我过我博客的小可爱就会会知道,上面事务和分区可以在图形化界面操作,
Mysql数据库第十三课-----------sql语句的拔高3--------直冲云霄_第5张图片
这里就不过多介绍了,小可爱可以去慢慢挖掘

总结

这里简单的介绍了索引和分区,也不懂的小可爱可以私聊

你可能感兴趣的:(数据库,mysql,sql)