如何分析品牌网站推广软件的WordPress目录结构以优化搜索引擎排名?
摘要:品牌网站推广软件,wordpress目录结构分析,南充市房产信息网官网,网站安全前言 在实际工作中,如果已经定位到某些具体的sql需要进行explain分析进而优化,可以直接使用e
品牌网站推广软件,wordpress目录结构分析,南充市房产信息网官网,网站安全前言 在实际工作中#xff0c;如果已经定位到某些具体的sql需要进行explain分析进而优化#xff0c;可以直接使用explainsql来分析其执行计划#xff1b;如果还不能确定是哪些具体的sql语句需要进行explain分析进而优化#xff0c;那么我们可以首先要定位哪些sql查询慢如果已经定位到某些具体的sql需要进行explain分析进而优化可以直接使用explainsql来分析其执行计划如果还不能确定是哪些具体的sql语句需要进行explain分析进而优化那么我们可以首先要定位哪些sql查询慢性能低消耗高 定位低效sql
慢查询日志可以通过开启慢查询日志来定位低效sql它是通过设置慢查询时间阈值默认是10s或者设置查询没有走索引的sql记录到慢查询日志中mysql性能优化之慢查询show processlist :慢查询日志在查询结束以后才纪录所以在应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题可以使用show processlist命令查看当前MySQL在进行的线程包括线程的状态、是否锁表等可以实时地查看 SQL的执行情况同时对一些锁表操作进行优化。
explain介绍 使用explain分析执行计划实际上是模拟优化器执行SQL语句分析你的查询语句或是结构的性能瓶颈使用方式explain 需要分析的查询sqlMySQL 会在查询上设置一个标记执行查询会返回执行计划的信息 而不是执行这条SQL 注意如果 from 中包含子查询仍会执行该子查询将结果放入临时表中。 在mysql官网中与explain相关的文章也有很多首推去官网阅读学习 了解查询执行计划 我们能通过explain sql知道些什么了 表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询 … 话不多说直接拿一条sql使用explain来分析一下并对它的一些参数进行解读 为了测试有2张表emp和dept
explain select * from dept;-------------------------------------------------------------------------------------------------------
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
-------------------------------------------------------------------------------------------------------
| 1 | SIMPLE | emp | NULL | ALL | NULL | NULL | NULL | NULL | 498343 | 100 | NULL |
-------------------------------------------------------------------------------------------------------
1 row in set字段解读
字段含义idselect查询的序列号是一组数字表示的是查询中执行select子句或者是操作表的顺序。select_type表示 SELECT 的类型常见的取值有1.SIMPLE简单表即不使用表连接或者子查询、2.PRIMARY主查询即外层的查询、3.UNIONUNION 中的第二个或者后面的查询语句、4.SUBQUERY子查询中的第一个 SELECT等table输出结果集的表type表示表的连接类型性能由好到差的连接类型为( system — const ----- eq_ref ------ ref------- ref_or_null---- index_merge — index_subquery ----- range ----- index ------all )possible_keys表示查询时可能使用的索引key表示实际使用的索引key_len索引字段的长度rows扫描行的数量extra执行情况的说明和描述
id
id 字段是 select查询的序列号是一组数字表示的是查询中执行select子句或者是操作表的顺序。id 情况有三种
id 相同表示加载表的顺序是从上到下。 id 不同id值越大优先级越高越先被执行。 id 有相同也有不同同时存在。id相同的可以认为是一组从上往下顺序执行在所有的组中id的值越大优先级越高越先执行。
select_type
数据读取操作的操作类型查询的类型主要是用于区别普通查询、联合查询、子查询等的复杂查询。
select_type含义SIMPLE简单的select查询查询中不包含子查询或者UNIONPRIMARY查询中若包含任何复杂的子查询最外层查询标记为该标识SUBQUERY在SELECT 或 WHERE 列表中包含了子查询DERIVED在FROM 列表中包含的子查询被标记为 DERIVED衍生 MYSQL会递归执行这些子查询把结果放在临时表中UNION若第二个SELECT出现在UNION之后则标记为UNION 若UNION包含在FROM子句的子查询中外层SELECT将被标记为 DERIVEDUNION RESULT从UNION表获取结果的SELECT
table
显示执行的表名这一列表示 explain 的一行正在访问哪个表。 当 from 子句中有子查询时表示当前查询依赖 idN 的查询于是先执行 idN 的查询。 当有 union 时UNION RESULT 的 table 列的值为union id1,id2id1和id2表示参与 union 的 select 行id。
type
type 显示的是访问类型。 结果值从最好到最坏依次是: null system const eq_ref ref range index all 在实际工作中我认为查询sql至少达到 range 级别。
type含义nullMySQL不访问任何表索引直接返回结果system表只有一行记录(等于系统表)这是const类型的特例一般不会出现const表示通过索引一次就找到了const 用于比较primary key 或者 unique 索引。因为只匹配一行数据所以很快。如将主键置于where列表中MySQL 就能将该查询转换为一个常量。const于将主键 或 “唯一” 索引的所有部分与常量值进行比较eq_ref类似ref区别在于使用的是唯一索引使用主键的关联查询关联查询出的记录只有一条。常见于主键或唯一索引扫描ref表之间的引用显示索引的哪一列被使用了如果可能的话是一个常数。哪些列或常量被用于查找索引列上的值。非唯一性索引扫描返回匹配某个单独值的所有行。本质上也是一种索引访问返回所有匹配某个单独值的所有行多个range只检索给定返回的行使用一个索引来选择行。 where 之后出现 between , , in 等操作。indexindex 与 ALL的区别为 index 类型只是遍历了索引树 通常比ALL 快 ALL 是遍历数据文件。all将遍历全表以找到匹配的行
key
key含义possible_keys哪些索引可以使用显示可能应用在这张表的索引 一个或多个key哪些索引被实际使用实际使用的索引 如果为NULL则没有使用索引key_len消耗的字节数表示索引中使用的字节数 该值为索引字段最大可能长度并非实际使用长度在不损失精确性的前 提下长度越短越好
rows
每张表有多少行被优化器查询根据表统计信息及索引选用情况大致估算出找到所需的记录所需要读取的行数越小越好。
extra
其他的额外的执行计划信息在该列展示 。
extra含义using filesort需要优化说明mysql会对数据使用一个外部的索引排序而不是按照表内的索引顺序进行读取 称为“文件排序”, 效率低。using temporary需要优化使用了临时表保存中间结果MySQL在对查询结果排序时使用临时表。常见于 order by 和group by 效率低using index表示相应的select操作使用了覆盖索引 避免访问表的数据行 效率不错。
