Mysql查询优化从入门到跑路(一)数据库与关系代数

1.怎样才算是数据库?

ACID,是指在数据库管理系统中事务所具有的四个特性

1)原子性

2)一致性

3)隔离性

4)持久性

关系数据库,基于关系代数,数据库形式是表格,数据能以不同方式被存取或重新召集。

2.关系代数(简单的来讲就是一种抽象的查询语句)

从数学层面上来讲,关系代数是支持叫做逆反的对合一元运算的剩余布尔代数

从数据库层面上来讲,是闭合于运算下的关系的集合

注意:尽管SQL的查询语句松散的基于了关系代数,但是很多有用的关于关系代数的理论在SQL对应者中不成立。

select ***  //投影

from ***    //笛卡尔积

where ***    //选择

union       //并集\差集

......

3.查询优化

本博客重点在于“查询重写规则”和“查询算法优化”,从优化的内容角度上看,查询优化又分为代数优化和非代数优化,或称为逻辑优化和物理优化

4.数据库调优和查询语句调优

数据库调优可以使数据库应用运行地更快,其目的是使数据库由更高的吞吐量和更短的响应时间,被调优的对象是整个数据库管理系统总体

查询语句调优的对象是一条查询语句

5.数据库调优五个阶段的主要技术

1.应用情况的估算

应用的使用方式;数据量;对数据库的压力、峰值压力等做个预估

2.系统选型策略

确定什么样的数据库可以使用应用需求

3.数据模型的设计

1)E-R模型设计

2)数据逻辑分布策略

3)数据物理存储策略

4)索引,在查询频繁的对象上简历合适的索引,使索引的正效应大于负效应(索引的维护存在消耗)

4.SQL设计

5.系统的监控与分析

时间: 2024-10-22 10:10:23

Mysql查询优化从入门到跑路(一)数据库与关系代数的相关文章

Mysql查询优化从入门到跑路(二)数据库查询优化技术总揽

五大优化技术 1.查询重用 查询重用是指尽可能利用先前的执行结果,以达到节约查询计算全过程的时间并减少资源消耗的目的. 目前查询重用技术主要集中在两个方面: 1)查询结果重用 在缓存区中分配一块缓冲区,存放该SQL语句文本和最后的结果集,当同样的SQl输入时,立即把结果返回. 2)查询计划的重用 缓存一条查询语句的执行计划及其相应语法树结构. 查询重用利弊: 1)利端:节约了CPU和IO消耗 2)弊端:消耗很大的内存资源,同样的SQL不同用户获取的结果集可能不同 2.查询重写 查询重写思路: 1

Mysql查询优化从入门到跑路(三)查询的基本操作

查询的基本操作 1.选择操作 对应的是限制条件,操作对象是二维表的行. 优化方式:选择操作下推 目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少) 好处:这样可能减少IO和CPU的消耗.节约内存空间 2.投影操作 对用的SELECT查询的目的列对象 优化方式:投影操作下推 目的:尽量减少连接操作前的列数,使得中间临时关系尽量小(选择操作是使元组的个数尽量少,投影操作是使一条元组尽量少) 好处:虽然不能减少IO(多数数据库存储方式是行存储,元组是读取的最基本

linux 从入门到跑路

linux 从入门到跑路 Note0 理解挂载 挂载源:泛指物理存储设备 挂载点:一个已存在的目录 挂载:在windows操作系统中, 挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符. 第三方软件,如磁盘分区管理软件.虚拟磁盘软件等,通常也附带挂载功能. 在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上. 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备. 文件系统:文件系统是操作

linux 从入门到跑路-文件管理

linux 从入门到跑路 文件类型,路径问题 处理目录的常用命令 ls: 列出目录 cd:切换目录 pwd:显示目前的目录 mkdir:创建一个新的目录 rmdir:删除一个空的目录 cp: 复制文件或目录 rm: 移除文件或目录 ls (列出目录) –a 列出所有文件包含隐藏文件和.和.. –A 列出所有文件包含隐藏文件不包含.和.. –l =ll 长数据串列出,包含文件的属性与权限等等数据 –r 倒序列出 –R 递归列出 –d 仅列出目录本身,而不是列出目录内的文件数据与-l联合使用 –1

linux 从入门到跑路–重定向 管道

linux 从入门到跑路 重定向 管道 Linux给程序提供三种I/O设备 标准输入(STDIN)-0默认接受来自键盘的输入 标准输出(STDOUT)-1默认输出到终端窗口 标准错误(STDERR)-2默认输出到终端窗口 I/O重定向:改变默认位置 重定向 重定向会覆盖原文件内容 > 把STDOUT重定向到文件 2> 把STDERR重定向到文件 &> 把所有输出重定向到文件 set –C 禁止将内容覆盖已有文件,但可追加 set +C 允许覆盖 >| file 强制覆盖 #

linux 从入门到跑路 - rpm ,yum , dnf (软件包管理三兄弟)

linux 从入门到跑路 - rpm ,yum , dnf (软件包管理三兄弟) 认识软件包管理 软件包管理是指系统中一种安装和维护软件的方法.今天,通过从 Linux 发行版中安装的软件包, 已能满足许多人所有需要的软件.这不同于早期的 Linux,人们需要下载和编辑源码来安装软件. 编辑源码没有任何问题,事实上,拥有对源码的访问权限是 Linux 的伟大奇迹.本篇,我们将查看一些用于包管理的命令行工具(rpm ,yum , dnf ).虽然所有主流 Linux 发行版都 提供了强大且精致的图

TiDB入门(四):从入门到“跑路”

前言 前面三章基本把 TiDB 的环境弄好了,也做了一下简单测试,有兴趣的同学可以看一下: TiDB 入门(一):TiDB 简介 TiDB 入门(二):虚拟机搭建 TiDB-Ansible 部署方案 TiDB 入门(三):简单测试 本来还有一些用 jmeter 压力测试的,后来测试的结果非常不好,就不想写出来了,因为自己毕竟是用虚拟机模拟的和 TiDB 官网推荐的配置差很多,如果自己写出来是有失偏颇的. 为何"跑路" 穷 我们可以看到,TiDB 对性能要求特别高,简单看一下配置.参考:

MySQL从删库到跑路_高级(一)——数据完整性

作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.数据完整性简介 1.数据完整性简介 数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确反应实际情况.数据的完整性是指数据的可靠性和准确性,数据完整性类型有四种:A.实体完整性:实体的完整性强制表的标识符列或主键的完整性(通过唯一约束,主键约束或标识列属性).B.域完整性:限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则)

MySQL从删库到跑路_高级(三)——视图

作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.视图简介 1.视图简介 视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式.视图包含一系列有名称的数据列和数据行,但视图中的数据并不真实在于数据库中,视图返回的是结果集. 2.创建视图的目的 视图是存储在数据中的查询的SQL语句,创建视图主要出于两种原因: A.实现安全.视图可设置用户对视图的访问权限. 创建查询是JAVA班学生成绩的视图javaview.NET班学生成绩的视图ne