当前位置: 首页 > news >正文

wordpress 4.0 bug公司以优化为理由裁员合法吗

wordpress 4.0 bug,公司以优化为理由裁员合法吗,安徽省工程建设信息网查询信息,做外贸必须有网站吗Mysql高级篇(中)—— 索引优化 一、索引分析案例案例 1:单表查询案例 2:两表连接查询案例 3:三表连接查询 二、避免索引失效常见索引失效场景简述场景 1场景 2场景 3场景 4场景 5场景 6 三、索引优化文字版示例版 一、…

Mysql高级篇(中)—— 索引优化

  • 一、索引分析案例
    • 案例 1:单表查询
    • 案例 2:两表连接查询
    • 案例 3:三表连接查询
  • 二、避免索引失效
    • 常见索引失效场景简述
    • 场景 1
    • 场景 2
    • 场景 3
    • 场景 4
    • 场景 5
    • 场景 6
  • 三、索引优化
    • 文字版
    • 示例版

一、索引分析案例

使用 EXPLAIN 分析 SQL 查询性能是数据库优化的重要环节。EXPLAIN 能展示查询的执行计划,帮助我们找出潜在的性能瓶颈。我们可以从 EXPLAIN 输出中的多个列(如 type、rows、Extra、key 等)来分析查询的执行情况, 常见的优化手段包括 创建单列复合索引避免全表扫描减少排序操作以及充分利用数据库索引覆盖 等。以下我将详细分析单表、两表、三表查询案例,给出性能分析和优化建议。

案例 1:单表查询

场景描述

我们有一个 employees 表,包含员工的姓名年龄部门等信息,结构如下:

CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),age INT,department_id INT,hire_date DATE,salary DECIMAL(10, 2),INDEX (department_id),INDEX (age)
);

查询要求:查找年龄在 30 岁以上的某部门的所有员工。

SELECT * FROM employees WHERE department_id = 1 AND age > 30;

使用 EXPLAIN 分析该查询:

EXPLAIN SELECT * FROM employees WHERE department_id = 1 AND age > 30;

在这里插入图片描述

案例 2:两表连接查询

场景描述

我们有两个表:employeesdepartments查询要求是找到所有在 "HR" 部门的员工,并按他们的薪水降序排列

SELECT e.name, e.salary FROM employees e 
JOIN departments d ON e.department_id = d.id 
WHERE d.name = 'HR' ORDER BY e.salary DESC;

使用 EXPLAIN 分析该查询:

EXPLAIN SELECT e.name, e.salary FROM employees e 
JOIN departments d ON e.department_id = d.id 
WHERE d.name = 'HR' ORDER BY e.salary DESC;

在这里插入图片描述

案例 3:三表连接查询

场景描述

假设我们有三个表:employees、departmentprojects,查询要求是查找所有参与某个项目员工姓名薪水所属部门

SELECT e.name, e.salary, d.name FROM employees e 
JOIN departments d ON e.department_id = d.id 
JOIN projects p ON e.id = p.employee_id 
WHERE p.project_name = 'Project A';

使用 EXPLAIN 分析该查询:

EXPLAIN SELECT e.name, e.salary, d.name FROM employees e 
JOIN departments d ON e.department_id = d.id 
JOIN projects p ON e.id = p.employee_id 
WHERE p.project_name = 'Project A';

在这里插入图片描述

二、避免索引失效

索引失效 问题是指数据库中的查询操作无法正确使用已有的索引,导致查询效率大幅下降。这通常发生在 SQL 语句的编写方式表结构的设计数据的变化未能与索引策略相匹配时。以下是几种常见的索引失效原因及避免方法,结合案例来说明。

常见索引失效场景简述

序号索引失效场景
1索引列上进行(计算、函数、类型转换)等操作
2使用 !=、<> 或者 NOT IN等操作
3is null,is not null也无法使用索引
4OR 条件
5like以通配符开头(‘%abc…’)的操作
6使用复合索引时 没有遵循最佳左前缀法则

上述场景示例解析:

场景 1

当查询条件 使用了函数或表达式 时,索引会失效。 例如对于表 users,如果在 name 字段上有索引,但执行以下查询:

SELECT * FROM users WHERE UPPER(name) = 'JOHN';

由于 UPPER(name) 使用了函数,MySQL 无法利用 name 字段上的索引。要避免这种情况,可以在插入或更新数据时将数据规范化为大写或小写,或者改用不依赖函数的查询方式:

SELECT * FROM users WHERE name = 'john';  -- 假设所有 name 都存储为小写

字段和查询条件的类型不一致 时,数据库会进行 隐式类型转换 ,这也会导致索引失效。例如,id 字段是整数类型,但查询时传入的是字符串

SELECT * FROM users WHERE id = '123';  -- id 为 INT

因为 id 字段是整数类型,数据库会尝试将 '123' 转换为数字,导致索引无法使用。正确做法是确保数据类型一致:

SELECT * FROM users WHERE id = 123;




场景 2

在使用 不等操作符 (!=、<>) 或者 NOT IN 时,索引通常不会生效。例如,以下查询可能无法使用索引:

SELECT * FROM users WHERE age != 30;

要避免这种情况,可以改用其他逻辑,如将查询拆分为多个条件(在特定情况下适用):

SELECT * FROM users WHERE age < 30 OR age > 30;




场景 3

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





场景 4

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





场景 5

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





场景 6

最左前缀法则 是数据库中针对 复合索引 使用的一个原则。它指的是:在使用复合索引时,查询条件必须按照 索引中从左到右的顺序并且不跳过索引中间的列 使用,从第一个开始,逐步向右,才能有效利用索引。

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

三、索引优化

文字版

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

示例版

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

http://www.zhongyajixie.com/news/55936.html

相关文章:

  • 访问wap网站优化排名 生客seo
  • 空调维修技术支持深圳网站建设郑州seo优化顾问阿亮
  • 网站开发保密协议范本seo关键词挖掘工具
  • 自己做的网站如何让外网访问高端网站建设哪个好
  • 做网站建设公司怎么样营销策略都有哪些
  • 中国第四冶金建设有限公司官方网站百度推广优化中心
  • 自己做的网站用国外的空间怎么样北京竞价托管代运营
  • 网站前端包括哪些建立一个企业网站需要多少钱
  • 大连网站推广工具搜索引擎优化的要点
  • 网站里弹窗怎么做百度助手下载安装
  • 婚庆网站开发背景百度关键词排名工具
  • 怎么用php自己做网站吗杭州seo网络推广
  • asp网站自动识别手机黑科技引流推广神器免费
  • 织梦cms做网站互联网广告行业
  • html5 电商网站模板国内免费顶级域名注册
  • 制作网页的网站哪个好用推广运营
  • 四川企业网站开发成都seo公司排名
  • 模拟网站平台怎么做今日要闻
  • 景区网站建设方案免费网站分析seo报告是坑吗
  • 免费网站建设公司推荐营销技巧在线完整免费观看
  • 广州开发网站建设抖音推广公司
  • 进一步加强门户网站建设的通知营销宝
  • 西安做网站印象网络百度指数官网入口登录
  • 网站建设公司排名做网站的平台有哪些
  • 手机如何申请个人邮箱百度seo关键词排名查询工具
  • 移动网站建设自助建站十大免费无代码开发软件
  • 最新某地方装修门户源码 php装饰公司程序 dede行业网站模板网络营销培训班
  • 网站怎么做电子合同如何建立网站的步骤
  • 开发和研发的区别佛山网站优化排名推广
  • 北京 网站设计公司百度一下网址是多少