【MySQL】29 索引
MySQL是一个关系型的数据库
使用标准的SQL数据格语言格式
支持大型数据库,处理千万级别的记录数据
允许多系统运行,支持多种编程语言连接
最重要的一点是MySQL允许定制,采用GPL协议,允许修改MySQL源码来实现定制SQL系统
在Linux安装MySQL:【省略】
MyISAM & InnoDB
MyISAM
不支持主外键,不支持事务,仅有表锁,不适合高并发操作 缓存只缓存索引,不支持缓存真实数据 表空间小,注重的是数据库管理系统的性能问题
InnoDB
支持主外键,支持事务管理,使用行锁控制,适合高并发操作 缓存索引和真实数据,对内存要求较高,而且内存大小对性能的影响是决定性的 表空间占用相比MyISAM较大,关注的重点是对事物的管理控制
SQL查询性能下降的原因:
- SQL语句写的不够优雅 - 索引失效 - 关联查询关联表过多【需求所迫】 - 服务器调优和各个参数设置(缓冲,线程数)
首先是对数据的排序整理,在检索的时候效率更快。
索引 Index
索引分为了两种,第一种是单值索引,第二种是复合索引
单值索引的创建,即给某一个字段创建索引
CREATE [UNIQUE | FULLTEXT | SPATAL] INDEX 索引名称 ON 表名(字段名[索引长度]);
可选参数的说明:
1、UNIQUE 唯一索引 2、FULLTEXT 全文索引 3、SPATAL 空间索引
索引名称的规范:
idx_表名_字段名
复合索引,就是对一个字段以上的多字段同时创建索引
create index 索引名称 on 表名(字段1,字段2,字段3)
复合索引的名称规范:
idx_表名_字段名1字段名2字段名3
【按照小驼峰方式命名】
查看索引:
SHOW INDEX FROM 表名称
显示的参数信息:
1、table 表格名称 2、non_unique 索引是否唯一,1不是,0是 3、key_name 索引名称 4、seq_in_index 该列在索引中的顺序位置,单索引值为1,复合索引按定义的顺序返回顺序值 5、column_name 定义索引的列名 6、sub_part 索引长度 7、null 该列是否能为空 8、index_type 索引类型
索引删除:
DROP INDEX 表的名称.索引名称
常见的Join查询:
SQL语法顺序
SELECT DISTINCT
要查询的字段,表达式,就是查询列表
FROM
查询列表的来源表,
多表查询的关联条件
WHERE
首要的筛选条件
GROUP BY
对上面查询的结果再进字段的分组
HAVING
对分组的字段进行筛选条件
ORDER BY
然后进行字段排序
LIMIT
对以上查询的结果,分页查询
SQL执行顺序:
关于数据库管理系统,按照机器运行SQL的顺序:
- 1、检索数据库查看FROM子句是选择了哪些数据表 - 2、多表关联,查看关联条件的构成 - 3、检查是否带有WHERE子句的筛选条件 - 4、检查是否需要GROUP BY分组查询数据 - 5、检查是否需要HAVING对分组后的数据二次筛选条件 - 6、回到最开始的SELECT子句的查询列表,把结果返回到这些要求的字段中 - 7、DISTINCT 子句 对查询结果去除重复 - 8、ORDER BY 子句 进行升序降序处理 - 9、LIMIT 子句 进行分页处理
7种连接方式:
- 左外右 + 外连接 - 全外连接【笛卡尔积】 - 内连接
【MySQL】29 索引的更多相关文章
- B+Tree原理及mysql的索引分析
一.索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 我们知道,数据库查询是数据库的最主要功能之 ...
- 【mysql】索引原理-MySQL索引原理以及查询优化
转载:https://www.cnblogs.com/bypp/p/7755307.html 一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性 ...
- 数据库MySQL 之 索引原理与慢查询优化
数据库MySQL 之 索引原理与慢查询优化 浏览目录 索引介绍方法类型 聚合索引辅助索引 测试索引 正确使用索引 组合索引 注意事项 查询计划 慢查询日志 大数据量分页优化 一.索引介绍方法类型 1. ...
- mysql数据库----索引原理与慢查询优化
一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语 ...
- mysql:索引原理与慢查询优化
一 索引的原理 1. 索引原理 索引的目的在于提高查询效率,与我们查阅图书所用的目录是一个道理:先定位到章,然后定位到该章下的一个小节,然后找到页数.相似的例子还有:查字典,查火车车次,飞机航班等 本 ...
- mysql六:索引原理与慢查询优化
一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句 ...
- 十、mysql之索引原理与慢查询优化
mysql之索引原理与慢查询优化 一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还 ...
- MySQL之索引(二)
高性能的索引策略 正确地创建和使用索引是实现高性能查询的基础.在MySQL之索引(一)这一章中我们介绍了各种类型的索引及其对应的优缺点.现在我们一起来看看如何真正地发挥这些索引的优势. 独立的列 我们 ...
- 单点突破:MySQL之索引
前言 开发环境:MySQL5.7.31 什么是索引 在MySQL中,索引(Index)是帮助高效获取数据的数据结构. 我们可以将数据库理解为一本书,数据库中的各个数据列(column)就是目录中的章节 ...
- 【mysql】索引优化分析
1. 索引的概念 1.1 索引是什么 MySQL 官方对索引的定义为:索引(Index)是帮助MySQL 高效获取数据的数据结构.可以得到索引的本质:索引是数据结构.可以简单理解为排好序的快速查找数据 ...
随机推荐
- 剑指Offer-64.滑动窗口的最大值(C++/Java)
题目: 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6, ...
- kettle从入门到精通 第二十四课 kettle 部署生产常用命令
一.设置KETTLE_HOME环境变量 假设kettle软件目录为/xxx/data-integration vi ~/.bash_profile export KETTLE_HOME=/xxx/da ...
- HTML 使用动态脚本
这个 HTML 图片框架 这个HTML支持的脚本属于动态的插件形式的程序 用分段数方式实现动画 1定时器 2函数 计算机有四则运算加减乘除 还有一个是 ^ (shift + 6这个符号是余数,8^3是 ...
- 写了一个 SRE 调试工具,类似一个小木马
远程操作机器有时会比较麻烦,我写了一个工具,主要功能:1.远程执行命令 2.上传下载文件.是一个 Web Server,通过 HTTP 请求来操作机器,类似一个小木马.当然,因为是一个 Web Ser ...
- 增补博客 第五篇 python 电子算盘
[题目描述]设计一个电子算盘.要求绘制电子算盘界面,设计并实现打珠算过程(界面参考如下图示).界面右侧要求以图形绘制的方式绘制自画像,注意不能是图像文件显示的形式. 图 电子算盘参考界面示意 [练习要 ...
- Java 对象转Map,Java Map转对象方法
Java 对象转Map,Java Map转对象方法 import com.alibaba.fastjson.JSON; import org.apache.commons.beanutils.Bean ...
- 随机二次元图片API上线
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 随机二次元图片API上线 日期:2017-12-6 阿珏 ...
- Android Verified Boot 2.0 AVB详解(基于Android P)
原文地址:https://android.googlesource.com/platform/external/avb/+/master/ 译文地址:https://blog.csdn.net/sha ...
- 免费领 | 2000件“直击灵魂”的Polo衫,创龙科技10周年献礼!
一件"有灵魂"的Polo衫 时光荏苒,创龙科技即将迎来10周年庆!为感谢各位客户多年的支持与信任,创龙科技特推出10周年献礼活动--2000件"直击灵魂&qu ...
- NewstarCTF 2023 Misc
NewStarCTF 2023 Misc week1 的 misc 请移步上一篇 NewStarCTF WEEK2 新建Word文档 直接复制出不来,改后缀为zip,document.xml得到内容 ...