MySQL (八) 分页、视图、索引 学习回顾记录

一、分页

1、为什么需要分页:
随着表数据量的增加,我们客户端数据的展示不可能一次性的把所有数据全部展示出来,即使全部展示,数据库把所有数据查询出来的也需要
很长时间甚至造成数据库崩溃,因此,我们只能一次查询出来多少条即可,这就是分页查询。
2、分页种类
(1)物理分页:在数据库执行查询时(实现分页查询)查询需要的数据----依赖数据库SQL语句,属于后台分页;
	优缺点:速度快,但是会频繁访问数据库。
(2)逻辑分页:先查询所有数据到内存,再从内存截取需要的数据---采用程序内部逻辑,属于前台分页;
	优缺点:和数据库交换一次,但是会导致浏览器卡顿,速度变慢。

(1)MySQL分页

MySQL数据库分页查询时,使用关键字 limit 。
limit 语法:
select ...  from  表  表别名    limit   开始记录索引,记录条数;
# limit 语法:从第0条开始查询10条记录
# select ... limit  from  表  表别名 limit 0,10 ;

# 使用分页,每页显示5条

#查询第一页,前五条

select * from emp limit 0,5;

#查询第二页,第六条到第十条

select * from emp limit 5,5;

#查询第三页,第11条到第15条

select * from emp limit 10,5;

#查询第四页,第16条到第20条

select * from emp limit 15,5;

# 分页计算公式
#page_num,page_size   都是程序传进来的参数。
select * from emp limit (page_num-1) * page_size,page_size;

二、视图

视图:建立在 表 | 结果集 | 视图 上的虚拟表,有以下作用:
- 简化:select 查询语句
- 重用:再次利用保存的视图
- 隐藏:内部细节
- 区分:相同数据不同查询
不是所有的用户都有创建视图的权限,需要授权。

(1)创建视图

语法:
creat or replace view 视图名 as select 语句;
create or replace view emp_first_page_view as select * from emp limit 0,5;

#再次利用
select * from emp_first_page_view; # 可以使用创建的视图

在这里插入图片描述

(2)删除视图

删除视图不会对原始表数据有任何影响。

语法:
drop  view  视图名;

在这里插入图片描述

三、索引

索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中,索引可以减小数据库程序查询结果时候所要读取的
数据数量,类似于在书籍中利用索引可以不用翻阅整本书即可找到想要的信息。

语法:
#建立索引
create 索引类型 index  索引名  on 表名 (字段列表)

# 丢弃
drop index 索引名 on 表名

索引:提高查询速度的一种手段--->目录
- 唯一性,较好字段适合建立索引
- 大数据量才有比较好的效果
- 主键 | 唯一 :唯一索引
#创建索引
create unique index index_dname on dept(dname);

select * from dept;

select dname from dept;

在这里插入图片描述

#删除索引

drop index index_dname on dept;

在这里插入图片描述

(1)explain

 EXPLAIN  查询sql执行方式

# EXPLAIN  查询sql执行方式

/*

使用* 匹配 不会使用索引
使用有索引的字段,索引自动生效

*/


#没有索引查询,表中有多少条记录,就先全表扫描,然后在查询到想要的数据。

EXPLAIN

select * from dept;

# 使用索引查询,表中数据哪怕一万条,根据索引定位到想要的数据。

EXPLAIN
select dname from dept;

在这里插入图片描述
在这里插入图片描述

因为前边给dname创建了索引,所以查询的时候直接就是按照索引来查询,表中数据哪怕一万条,根据索引定位到想要的数据,

如果没有建立索引,那么就是type = ALL,先全表扫描,然后在查询到想要的数据,这就是有索引和没索引的区别。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值