- 使用索引扫描来做排序MySQL有两种方式可以生成有序的结果:通过排序操作;或者按照索引顺序扫描;如果explain出来的type列的值是index,则说明mysql使用了索引扫描来做排序(不要和extra列的using index高混淆了)扫描索引本身是很快的,因为只需要从一条索引记录移动到紧挨着的下一条记录。但是如果索引不能覆盖查询所需的全部列,那就不得不每扫描一条索引记录就都回表查询一... 使用索引扫描来做排序MySQL有两种方式可以生成有序的结果:通过排序操作;或者按照索引顺序扫描;如果explain出来的type列的值是index,则说明mysql使用了索引扫描来做排序(不要和extra列的using index高混淆了)扫描索引本身是很快的,因为只需要从一条索引记录移动到紧挨着的下一条记录。但是如果索引不能覆盖查询所需的全部列,那就不得不每扫描一条索引记录就都回表查询一...
- 回城传送–》《32天SQL筑基》@[toc] 零、前言今天是学习 SQL 打卡的第 19 天,每天我会提供一篇文章供群成员阅读( 不需要订阅付钱 )。我的学习策略很简单,题海策略+ 费曼学习法。如果能把这些题都认认真真自己实现一遍,那意味着 SQL 已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。今天的学习内容是:SQL进阶-查询优化- performance_sch... 回城传送–》《32天SQL筑基》@[toc] 零、前言今天是学习 SQL 打卡的第 19 天,每天我会提供一篇文章供群成员阅读( 不需要订阅付钱 )。我的学习策略很简单,题海策略+ 费曼学习法。如果能把这些题都认认真真自己实现一遍,那意味着 SQL 已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。今天的学习内容是:SQL进阶-查询优化- performance_sch...
- 高性能的索引策略 独立的列如果查询的列不是独立的,则MySQL就不会使用索引。独立的列是指索引列不能是表达式的一部分,也不能是函数的参数。如:select actor_id FROM sakila.actor where actor_id + 1 = 5;其实屏肉眼你是可以判断出这个actor_id其实就是=4,但是mysql是无法自动解析这个方程式的。这完全是用户行为,我们应该养成习惯,... 高性能的索引策略 独立的列如果查询的列不是独立的,则MySQL就不会使用索引。独立的列是指索引列不能是表达式的一部分,也不能是函数的参数。如:select actor_id FROM sakila.actor where actor_id + 1 = 5;其实屏肉眼你是可以判断出这个actor_id其实就是=4,但是mysql是无法自动解析这个方程式的。这完全是用户行为,我们应该养成习惯,...
- 索引覆盖查询还是有很多陷阱可能导致无法实现优化,MySQL查询优化器会在执行查询前判断是否有一个索引能进行覆盖,假设索引覆盖了where条件中的字段,但不是整个查询涉及的字段。MySQL5.5或者更早的版本还是会回表获取数据行,尽管这一行可能最终还是会被过滤掉。我们举个栗子:SELECT * FROM products where actor = 'SEAM CARREY'AND title... 索引覆盖查询还是有很多陷阱可能导致无法实现优化,MySQL查询优化器会在执行查询前判断是否有一个索引能进行覆盖,假设索引覆盖了where条件中的字段,但不是整个查询涉及的字段。MySQL5.5或者更早的版本还是会回表获取数据行,尽管这一行可能最终还是会被过滤掉。我们举个栗子:SELECT * FROM products where actor = 'SEAM CARREY'AND title...
- 问题在线动态设置long_query_time,从10秒设置到了1秒,执行慢sql,没有记录到慢查询日志中。 解决方案查看慢查询日志是否有开启show variables like '%slow_query_log%'; show variables like '%long_query_time%'; 是已经开启的。如果没有开启,请按上文介绍的方式操作,这里不再赘述。慢查询阀值是10s,改... 问题在线动态设置long_query_time,从10秒设置到了1秒,执行慢sql,没有记录到慢查询日志中。 解决方案查看慢查询日志是否有开启show variables like '%slow_query_log%'; show variables like '%long_query_time%'; 是已经开启的。如果没有开启,请按上文介绍的方式操作,这里不再赘述。慢查询阀值是10s,改...
- 【第15天】SQL进阶-查询优化-慢查询日志(SQL 小虚竹) 【第15天】SQL进阶-查询优化-慢查询日志(SQL 小虚竹)
- 【第0天】SQL快速入门-了解MYSQL前世今生,为了更好探索未来(SQL 小虚竹) 【第0天】SQL快速入门-了解MYSQL前世今生,为了更好探索未来(SQL 小虚竹)
- DCL-介绍用来管理数据库用户,控制数据库的访问权限主要俩个方面 ,控制哪些用户可以访问,控制每个用户具有什么样的访问权限DCL-管理用户1、查询用户USE mysqlSELECT *FROM user2、创建用户CREATE UESR '用户名'@'主机名' IDENTIFIED BY '密码' ;3、修改用户密码ALTER USER '用户名'@'主机名' IDENTIFIED W... DCL-介绍用来管理数据库用户,控制数据库的访问权限主要俩个方面 ,控制哪些用户可以访问,控制每个用户具有什么样的访问权限DCL-管理用户1、查询用户USE mysqlSELECT *FROM user2、创建用户CREATE UESR '用户名'@'主机名' IDENTIFIED BY '密码' ;3、修改用户密码ALTER USER '用户名'@'主机名' IDENTIFIED W...
- 使用触发器 触发器发生什么事情之后或之前,会自动执行某条语句,这就是触发器 创建触发器创建触发器要给出的4条关键信息:1.唯一的触发器名2.触发器关联的表3.触发器应该响应的活动(DELETE,INSERT or UPDATE)4.触发器何时执行(处理之前or之后)CREATE TRIGGER语句创建触发器CREATE TRIGGER newproduct AFTER INSERT ON ... 使用触发器 触发器发生什么事情之后或之前,会自动执行某条语句,这就是触发器 创建触发器创建触发器要给出的4条关键信息:1.唯一的触发器名2.触发器关联的表3.触发器应该响应的活动(DELETE,INSERT or UPDATE)4.触发器何时执行(处理之前or之后)CREATE TRIGGER语句创建触发器CREATE TRIGGER newproduct AFTER INSERT ON ...
- 使用存储过程 存储过程存储过程简单来说,就是为了以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。但他的作用不仅限于批处理。 为什么要处理存储过程通过把处理封装在容易使用的单元中,简化复杂的操作。使用统一存储过程,可防止错误,因为执行的步骤越多,出错的可能性就越大。简化对变动的管理。如果变动了,我们只需修改存储过程就好。提高性能,使用存储过程比单独的SQL语句要快存在一些... 使用存储过程 存储过程存储过程简单来说,就是为了以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。但他的作用不仅限于批处理。 为什么要处理存储过程通过把处理封装在容易使用的单元中,简化复杂的操作。使用统一存储过程,可防止错误,因为执行的步骤越多,出错的可能性就越大。简化对变动的管理。如果变动了,我们只需修改存储过程就好。提高性能,使用存储过程比单独的SQL语句要快存在一些...
- 使用触发器 触发器发生什么事情之后或之前,会自动执行某条语句,这就是触发器 创建触发器创建触发器要给出的4条关键信息:1.唯一的触发器名2.触发器关联的表3.触发器应该响应的活动(DELETE,INSERT or UPDATE)4.触发器何时执行(处理之前or之后)CREATE TRIGGER语句创建触发器CREATE TRIGGER newproduct AFTER INSERT ON ... 使用触发器 触发器发生什么事情之后或之前,会自动执行某条语句,这就是触发器 创建触发器创建触发器要给出的4条关键信息:1.唯一的触发器名2.触发器关联的表3.触发器应该响应的活动(DELETE,INSERT or UPDATE)4.触发器何时执行(处理之前or之后)CREATE TRIGGER语句创建触发器CREATE TRIGGER newproduct AFTER INSERT ON ...
- 说明:我这安装的mysql是5.7版本的,免安装版的(就是没有界面让你点击下一步下一步的那种),直接解压到哪个盘就安装在了哪个盘。 1.下载zip后将其解压到想安装的盘符中 2.添加环境变量(将bin文件的路径添加进去)我的电脑右击—>属性—>高级系统设置—>环境变量—>系统变量里的path—>点击编辑 2.1 在你解压并且添加环境变量之后,你可以这样检测一下。右键开始菜单(就是屏幕左下角... 说明:我这安装的mysql是5.7版本的,免安装版的(就是没有界面让你点击下一步下一步的那种),直接解压到哪个盘就安装在了哪个盘。 1.下载zip后将其解压到想安装的盘符中 2.添加环境变量(将bin文件的路径添加进去)我的电脑右击—>属性—>高级系统设置—>环境变量—>系统变量里的path—>点击编辑 2.1 在你解压并且添加环境变量之后,你可以这样检测一下。右键开始菜单(就是屏幕左下角...
- 连接数据库mysql -uroot -proot 查看所有数据库show databases; 创建数据库并设置字符集和排序规则create database zjq CHARACTER SET ‘utf8mb4’ COLLATE utf8_chinese_ci; 使用数据库use zjq; 查看当前数据库中的表show tables; 删除数据库drop database zjq; 查... 连接数据库mysql -uroot -proot 查看所有数据库show databases; 创建数据库并设置字符集和排序规则create database zjq CHARACTER SET ‘utf8mb4’ COLLATE utf8_chinese_ci; 使用数据库use zjq; 查看当前数据库中的表show tables; 删除数据库drop database zjq; 查...
- 汇总数据 聚集函数聚集函数:运行在行组上,计算和返回单个值的函数SQL聚集函数函数说明AVG()返回某列的平均值COUNT()返回某列的行数MAX()返回某列的最大值MIN()返回某列的最小值SUM()返回某列值之和 AVG函数例:返回products表中所有产品的平均价格:SELECT AVG(prod_price) AS avg_priceFROM products;:paintbr... 汇总数据 聚集函数聚集函数:运行在行组上,计算和返回单个值的函数SQL聚集函数函数说明AVG()返回某列的平均值COUNT()返回某列的行数MAX()返回某列的最大值MIN()返回某列的最小值SUM()返回某列值之和 AVG函数例:返回products表中所有产品的平均价格:SELECT AVG(prod_price) AS avg_priceFROM products;:paintbr...
- 检索数据写在前面,sql语句是不区分大小写的,SELECT和select是一样的,但是许多的SQL开发人员习惯对sql关键字大写,而对所有的列和表名使用小写。 select语句 检索单个列select prod_name from products; 检索多个列SELECT prod_id , prod_name,prod_price FROM products; 检索所有列SELECT... 检索数据写在前面,sql语句是不区分大小写的,SELECT和select是一样的,但是许多的SQL开发人员习惯对sql关键字大写,而对所有的列和表名使用小写。 select语句 检索单个列select prod_name from products; 检索多个列SELECT prod_id , prod_name,prod_price FROM products; 检索所有列SELECT...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考
2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本
2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签