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

规模以上工业企业分析/seo搜索如何优化

规模以上工业企业分析,seo搜索如何优化,乐站_网站建设_自助建站,前程无忧招聘网站标记怎么做1、服务器层面:参数配置优化、减少客户端使用连接数 --可考虑使用缓存2、架构层面:”读写分离、分库、分表、分片3、业务sql层面:查看慢查询日志、sql优化show variables like %slow_query%; ---默认关闭查看日志路径show variables like %long_query%; …

1、服务器层面:参数配置优化、减少客户端使用连接数 --可考虑使用缓存

2、架构层面:”读写分离、分库、分表、分片

3、业务sql层面:查看慢查询日志、sql优化

7f65529060ab

show variables like '%slow_query%'; ---默认关闭

7f65529060ab

查看日志路径

show variables like '%long_query%'; ---多长时间是慢查询呢?

7f65529060ab

慢查询时间设置

怎么修改默认配置?

vim /etc/my.cnf

7f65529060ab

linux 文件路径

7f65529060ab

修改参数

查看最慢的10条sql日志

7f65529060ab

mysql -u root -p

show full processlist; ---查看客户端链接

7f65529060ab

查看客户端链接

show global status;---查看服务端状态值

show engine innodb  status;-- 查看innodb状态

7f65529060ab

innodb运行状态、查看死锁IO等

explain执行顺序怎么看?

7f65529060ab

id值不同 按ID从大到小执行

7f65529060ab

id值相同,从上到下执行

总节:id查询顺序,先从大到小,再从上到下。调整表顺序,可得到不同id执行顺序。优化原则,小表驱动大表,即小表放前面

一、具体案例

我们来执行一条非常简单的代码:

expain select * from t1,t2,t3 where t1.id=t2.id and t2.id=t2.id;

执行之后的结果如下:

7f65529060ab

发现出来了很多的字段,这么多字段其实也没必要每个都重点关注,上面图片用红色框框标出了5个字段,这些是需要重点关注的。下面具体来说说这5个字段的含义。

1.type

表示访问表的方式,一共有6种。

从最好到最差的结果依次如下:

system > const > eq_ref > ref > range > index > ALL

注意:一个好的SQL语句至少要达到range级别!杜绝出现all级别。

system: 表示结果集仅有一行;

const: 表示通过主键或者唯一键键查找数据时只匹配最多一行数据;

eq_ref: 该类型多出现在多表join场景,通过主键或者唯一键访问表;

对于前表b的每行记录,都只能匹配到后表a的一行记录并且查询的比较操作通常是=,查询效率较高。

ref: 此类型通常出现在sql使用非唯一或非主键索引, 或者是使用最左前缀规则索引的查询;

range: 表示where条件使用索引范围查询,当 type 是 range 时,ref 字段为 NULL。

index: 表示全索引扫描, 扫描所有的索引记录, 而不扫描数据;

index 类型通常会出现在覆盖索引中,所要查询的数据直接在索引中就可以访问, 而不用回表扫描数据. 此时Extra 字段 会显示 Using index。

还有一种是全表扫描时通过索引顺序访问数据。此时并不会在Extra提示 using index。

ALL: 表示执行计划选择全表扫描,当执行计划出现type 为all 时,我们尽量通过修改索引的方式让查询利用索引。

2.key

此字段是 MySQL 在当前查询时所真正使用到的索引。

如果没有选择索引,值是NULL。

可以采取强制索引方式。

3.key_len

key_len表示执行计划所选择的索引长度有多少字节,通常我们可借此判断联合索引有多少列。

key_len 大小的计算规则是:

一般地,key_len 等于索引列类型字节长度,例如int类型为4 bytes,bigint为8 bytes;

如果是字符串类型,还需要同时考虑字符集因素,例如:CHAR(30) UTF8则key_len至少是90 bytes;

若该列类型定义时允许NULL,其key_len还需要再加 1 bytes;

若该列类型为变长类型,例如 VARCHAR(TEXT\BLOB不允许整列创建索引,如果创建部分索引也被视为动态列类型),其key_len还需要再加 2 bytes。

4.rows

表示的是扫描行数。

记住:该值是个预估值,所以并非是完全准确的值。

MySQL 查询优化器根据统计信息,估算 SQL 要查找到结果集需要扫描读取的数据行数。

原则上 rows 越少越好。

5.extra

该列会提示优化执行计划的额外的信息。

注意,常见的不太友好的、值得大家关注的有如下几种:

Using index。表示该sql利用覆盖索引扫描,也即从只访问索引即可获取到所需的数据,而不用回表。

Using where。表示该sql 回表获取数据了。什么是回表呢? 其实就是仅仅通过访问索引不能满足获取所需的数据,需要访问表的page 页。

如果和Using index 同时出现,说明where条件通过索引定位数据,然后回表,再过滤所需要的数据。

Using filesort。说明排序没有利用索引而发生了额外排序 ,伴随着的可能还有Using temporary。

其实还有其它一些 提示Using MRR、Using index condition 、Using index for group-by,这些提示是正向的,说明sql比较优化。

7f65529060ab

extra

6.其它字段

前面讲了5个比较重要的字段,相信很多求知欲强的小伙伴也想知道其它字段是什么意思,这里也一并列出来,以供参考:

字段含义

id查询语句的序号或者说是标识符

select_type表示查询的类型,常见的有如下6种

table其值为表名或者表的别名,表示访问哪一个表

partitions匹配的分区

possible_keys表示查询时,可能使用的索引

filtered按表条件过滤的行百分比 越高越好,越高表示返回给server层数据越准确,100表示server层无需再过滤,减少性能消耗

7f65529060ab

explain字段含义

explain format=json select * from schn_shop_goods order by goods_id;---加上format=json 可得到更详细信息入cost成本数据等

常见优化

7f65529060ab

深页查询

-----后续具体案例再添加

https://www.mysqlzh.com/doc/64.html---mysql中文参考文档

http://www.jmfq.cn/news/5293549.html

相关文章:

  • av插插网站正在建设中/2024新闻热点摘抄
  • 泉州厦门网站建设公司/搜索引擎优化的报告
  • 北京网站设计制作关键词优化/武汉网站营销seo方案
  • 家乡网站建设策划书/济南seo快速霸屏
  • 日本网站代理/友情链接名词解释
  • 辽宁网站建设论坛/网络竞价
  • 网站线框/新手怎么入行sem
  • wordpress bootstrap 企业/seo刷排名公司
  • 网站设计制作花多少钱/软文广告
  • 西安网站建设huanxi/百度免费推广方法
  • 建设网站需要哪个语言编译器/四川全网推网络推广
  • 网站开发的名称叫什么/营销策略有哪些4种
  • 凡科网站免费版/百度页面
  • 织梦cms收费不交有事吗/岳阳seo公司
  • 小黄人大电影免费观看/seo排名大概多少钱
  • 网站用oracle做数据库/手游推广去哪里找客源
  • 北京网站开发怎么做/百度商城app
  • 自己做免费的网站/深圳排名seo公司
  • 嵊州做网站/今日特大新闻新事
  • 承包企业管理系统/企业网站seo排名
  • 住建城乡建设网站/互联网营销培训班
  • 网站远程数据库/如何做运营推广
  • wordpress入门建站/佛山外贸seo
  • 网站做区块链然后往里面投钱/百度地图在线查询
  • 永州做网站/广州网络营销选择
  • 京市保障性住房建设投资中心网站/盐城seo优化
  • 档案局网站的建设/seo值怎么提高
  • 网站租用服务器多少钱/爱链接
  • 珠海网站设计哪家好/百度账号申诉中心
  • 保定免费建站服务/怎么自己制作一个网站