MySQL中的索引、左连接、右连接、join、sql执行顺序
逻辑架构:
1、连接层
2、服务层
3、引擎层(插拔式)
4、存储层
存储引擎:
常用的有:MyISAM、InnoDB
查看命令:show variables like '%storage_engine%';
索引:【单值、复合】
创建索引:create index idx_user_name(索引名字) on user(表名) (name)(字段名)
定义:索引是一种数据结构(帮助MySQL高效的获取数据)
目的:提高查询效率,可以类比字典【可以理解为排好序的快速查找数据结构】
但同时也会影响sql两部分:where后面的查找、order by 后面的排序
优势:提高数据检索效率,降低数据库的iO成本;
劣势:实际上索引也是一种表,它保存的索引字段,是需要占空间的;会降低更新表速度,因为更新表时,MySQL不仅要保存数据还要保存索引文件每次更新添加了索引的字段
分类:
原理:二分查找,类似猜数字游戏【结构:B-TREE(Java主要)、hash、R-TREE】
什么时候该建索引:
什么时候不该建索引:
1、表记录太少
2、经常增删改的表或字段
3、数据重复切分布平均的字段【如果某个数据列包含许多重复的内容,为它建立索引就没有很么实际的效果】
常见的join查询:
一、SQL执行顺序
1 FROM <left_table>
2 ON <join_condition>
<join_type>JOIN<right_table>
4 WHERE <where_condition>
5 GROUP BY <group_by_list>
6 HAVING <having_condition>
7 SELECT
8 DISTINCT<select_list>
9 ORDER BY <order_by_condition>
10 LIMIT <limit_number>
二、7种join图
MySQL中的索引、左连接、右连接、join、sql执行顺序的更多相关文章
- mysql左连接 右连接 内连接的区别
mysql左连接 右连接 内连接的区别 1.内连接,显示两个表中有联系的所有数据; 2.左链接,以左表为参照,显示所有数据,右表中没有则以null显示 3.右链接,以右表为参照显示数据,,左表中没有则 ...
- Oracle左连接,右连接
Oracle左连接,右连接 数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制 ...
- 详解MySQL中concat函数的用法(连接字符串)
MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制 ...
- MySQL(五) MySQL中的索引详讲
序言 之前写到MySQL对表的增删改查(查询最为重要)后,就感觉MySQL就差不多学完了,没有想继续学下去的心态了,原因可能是由于别人的影响,觉得对于MySQL来说,知道了一些复杂的查询,就够了,但是 ...
- MySQL中的索引详讲
一.什么是索引?为什么要建立索引? 索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的 ...
- (转)MySQL中的索引详讲
序言 之前写到MySQL对表的增删改查(查询最为重要)后,就感觉MySQL就差不多学完了,没有想继续学下去的心态了,原因可能是由于别人的影响,觉得对于MySQL来说,知道了一些复杂的查询,就够了,但是 ...
- 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...
- 一步一步带你入门MySQL中的索引和锁 (转)
出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等.本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结 ...
- MySQL中的索引简介
MySQL中的SQL的常见优化策略 MySQL中的索引优化 MySQL中的索引简介 一. 索引的优点 为什么要创建索引?这是因为,创建索引可以大大提高系统的查询性能. 第一.通过创建唯一性索引,可以保 ...
随机推荐
- 高通量计算框架HTCondor(三)——使用命令
目录 1. 目录 2. 进程 3. 命令 3.1. condor_q 3.2. condor_status 3.3. conodr_submit 3.4. conodr_rm 4. 相关 1. 目录 ...
- 用路由系统生成输出URL 在视图中生成输出URL 高级路由特性 精通ASP-NET-MVC-5-弗瑞曼
Using the Routing System to Generate an Outgoing URL 结果呢:<a href="/Home/CustomVariable" ...
- Lobooi个人作业:阅读与准备作业
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业要求在哪里 https://edu.cn ...
- 从maven安装配置到idea成功创建maven项目
在文章开始之前,我还是想安抚下你躁动的心情,说实话这一套操作下来的确花了我不少时间,的确头疼. 不过对于现在在看文章的你,我还是想提倡多多尝试,耐心哈,别砸键盘......废话少说切入正题 一. ma ...
- Mavn 项目 引入第三方jar包 导致ClassNotFoundException
案例 我有一个Maven构建的项目,项目模块之间有依赖关系,我需要用到一个本地的jar包,而该jar包不能通过配置pom.xml文件从远程仓库自动下载,于是我直接导入该jar包到其中一个项目,不通过p ...
- 八使用Shell函数
在Shell脚本中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数 使用函数的好处? 使脚本代码更简洁,增强易读性 提高Shell脚本的执行效率 函数定义方法 基本格式1 function ...
- VirtualBox 安装ghost版windows XP
昨天尝试在VirtualBox中安装深度技术的GhostXP SP3 V8.02版本的系统,可是安装过程中出现了问题,无法安装,错误提示如下图: 昨天搞了一会,没有结果,今天对于这个无法安装的问题耿耿 ...
- 一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具 Intro DbTool 是一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具,原本 ...
- Goland2019.3.2永久破解
2019.11.28 jetbrains公司发布了Go的最强编辑器GoLand 2019.3.本次更新软件消耗更少的CPU和更快的性能,增强了对Go Modules的支持,添加了一组新的快速修复程序, ...
- Affinity Propagation Demo1学习
利用AP算法进行聚类: 首先导入需要的包: from sklearn.cluster import AffinityPropagation from sklearn import metrics fr ...