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

建设银行南通城区网站wordpress4.9.8 php版本

建设银行南通城区网站,wordpress4.9.8 php版本,宁波优化关键词首页排名,如何用源码做网站慢查询判定1.开启慢查询日志记录执行时间超过long_query_time 秒的sql语句2.通过show processlist命令查看线程执行状态3.通过explain解析sql了解执行状态慢查询优化是否向服务器请求列不必要的数据查询不需要的记录(limit)#xff0c;多表关联返回全部列#xff0c;总是取出…慢查询判定1.开启慢查询日志记录执行时间超过long_query_time 秒的sql语句2.通过show processlist命令查看线程执行状态3.通过explain解析sql了解执行状态慢查询优化是否向服务器请求列不必要的数据查询不需要的记录(limit)多表关联返回全部列总是取出全部列和重复io等是否走索引建立索引的原则最左前缀匹配原则mysql会一直向右匹配直到遇到范围查询(、 3 and d 4 如果建立(a,b,c,d)顺序的索引d是用不到索引的如果建立(a,b,d,c)的索引则都可以用到a,b,d的顺序可以任意调整等值查询(和in)可以乱序比如a 1 and b 2 and c 3 建立(a,b,c)索引可以任意顺序mysql查询优化器会优化成索引为可识别的形式模糊匹配like“%”不能在第一个位置选择区分度高的列作为索引区分度的公式是count(distinct col)/count(*)表示字段不重复的比例比例越大扫描的记录数越少唯一键的区分度是1索引列不能是表达式的一部分或者是函数的参数尽量的扩展索引不要新建索引。比如表中已经有a的索引现在要加(a,b)的索引那么只需要修改原来的索引即可避免在where子句中对字段进行NULL值判断否则将导致引擎放弃使用索引而进行全表扫描or改写成inor的效率是n级别in的效率是log(n)级别in的个数建议控制在200以内尽量避免在where子句中使用!或操作符否则将引擎放弃使用索引而进行全表扫描对于连续数值使用between不用in查询sql是否合理切分查询分解关联查询将一个大的查询分解为多个小查询是很有必要的。很多高性能的应用都会对关联查询进行分解就是可以对每一个表进行一次单表查询然后将查询结果在应用程序中进行关联很多场景下这样会更高效表结构优化对于需要经常联合查询的表可以建立中间表以提高查询效率水平拆分分区表分库分表垂直拆分将单个表字段分解为多个表字段(根据模块的耦合度拆分为分布式系统)查询执行路径客户端/服务器通信半双工模式---- 任意时刻数据只能单向传输查询优化器mysql查询优化器会通过某种策略自动生成最优的执行计划重新定义关联表的顺序数据表的关联顺序并不总是按照在查询中指定的顺序执行将外连接转化为内连接并不是所有的OUTER JOIN操作都必须以外连接的方式执行使用等价变换规则mysql会使用一些等价变换规则来优化表达式优化COUNT()MyISAM维护一个变量存放表的行数, MIN() -- 查询列对应B树索引最左端记录 ,MAX() -- 查询列对应B树索引最右端记录预估并转化为常数表达式覆盖索引扫描当索引中的列包含列所有查询需要返回的列时mysql会自动使用覆盖索引扫描而无需查询对应的数据行子查询优化提前终止查询如Limit等值传播列表IN()的比较在很多数据库系统中IN()完全等同于多个OR条件的子句但是mysql会先将IN()列表中的数据进行排序然后通过二分查找来确定列表中的值是否满足条件O(log(n))复杂度操作而如果转换为OR则复杂度为O(n)SQL执行顺序FROM—ON—JOIN—WHERE—GROUP BY—SUM(聚合函数)—HAVING—SELECT—DISTINCT—UNION—ORDER BY—LIMIT优化特定类型查询优化子查询MySql的子查询实现非常糟糕特别是where条件中包含IN()的子查询性能通常会比较差如select * from film where film_id in (select film_id from film_actor where film.film_id 1);MySql查询优化器会将上面的查询通过Exists改写select * from film where exists(select * from film_actor where film.film_id 1and film.film_id film_actor.film_id);IN比较通过在内存中遍历而exists走数据库索引所以当子查询中表的数据量比较大时exists效率优于in优化子查询最常见的建议就是尽可能使用关联查询代替select film.* from film inner join film_actor using (film_id) where actor_id 1;优化COUNT()COUNT函数用于统计某个列值的数量或者行数统计列值时要求列值非空(不统计NULL)优化关联查询确保ON或者USING子句的列上有索引。只需在关联顺序的第二个表上建立索引即可如当表A和表B用列c关联的时候如果优化器的优化顺序为BA那么就不需要在表B上建立索引确保任何的GROUP BY或者ORDER BY中的表达式只涉及到一个表中的列这样mysql才有可能使用索引来优化这个过程优化GROUP BY和DISTINCT当无法使用索引时GROUP BY会通过临时表或者文件排序做排序优化limit分页limit操作在偏移量非常大的情况mysql会扫描大量不需要的行然后抛弃掉导致效率降低1.延迟关联在关联查询中使用覆盖索引扫描获取关联字段后再根据关联列回表查询需要的所有列SELECT film_id, description FROM filmINNER JOIN (SELECT film_idFROM film ORDER BY title LIMIT 10000, 10) AS tmp USING (film_id);2.取上次分页查询操作返回的主键ID作为下一次分页查询起始位置SELECT film_id, description FROM film WHERE film_id 10000 ORDER BY title LIMIT 10;NULL值空值是不占空间的NULL是占空间的聚合函数,如COUNT(),MIN(),SUM()在进行查询时会忽略掉null值查询列不为NULL应使用IS NOT NULL进行查询条件查询会过滤掉NULL值和空值Explainid:执行编号标识select所属的行。如果在语句中没子查询或关联查询只有唯一的select每行都将显示1。否则内层的select语句一般会顺序编号对应于其在原始语句中的位置select_type: 显示本行是简单或复杂select。如果查询有任何复杂的子查询则最外层标记为PRIMARY(DERIVED、UNION、UNION RESUlT)table: 访问引用哪个表(引用某个查询如“derived3”)type: 数据访问读取操作类型(ALL、index、range、ref、eq_ref、const/system、NULL)possible_keys: 揭示哪一些索引可能有利于高效的查找key: 显示mysql决定采用哪个索引来优化查询key_len: 显示mysql在索引里使用的字节数ref: 显示了之前的表在key列记录的索引中查找值所用的列或常量rows: 为了找到所需的行而需要读取的行数估算值不精确。通过把所有rows列值相乘可粗略估算整个查询会检查的行数Extra: 额外信息如using index、filesort等select_type(查询类型)simple:简单查询不包含子查询和unionprimary:查询包含子查询和union最外层部分标记为primaryderived:派生表该临时表是从子查询中派生出来位于from中的子查询union:union中第二个及以后的select第一个union标记为primaryunion result:从匿名临时表中检索结果的select操作dependent union:union中第二个或后面的select语句取决于外层查询subquery:子查询中第一个selectdependent subquery:子查询中的第一个select取决于外层查询type(访问类型)all:全表扫描index:和全表扫描一样只是扫描表的顺序是按照索引的顺序优点是避免排序但是开销仍然非常大range:范围扫描key列显示使用哪个索引。当使用如,,,,ref:索引访问返回所有匹配的记录当使用非唯一索引或者唯一索引非唯一前缀eq_ref:最多只返回1条符合条件的记录使用唯一索引或者主键索引时const/system:mysql能对查询的某部分进行优化并将其转化为一个常量null:mysql能在优化阶段分解查询语句在执行时不需访问表或者索引ExtraUsing filesort: mysql会对结果使用外部索引排序而不是按索引次序从表读取行Using temporary: mysql在对查询结果排序时使用临时表常见于排序和分组查询Using index: 使用覆盖索引扫描直接从索引中过滤不需要的记录并返回命中结果。这是在mysql服务器层完成的但无需再回表查询记录Using index condition:Using where: mysql服务器将在存储引擎检索行后再进行过滤distinct: 优化distinct操作在找到第一匹配的元组后即停止找同样值的动作复制主从复制1.在主库把数据更改记录到二进制文件中(Binary Log)2.从库将主库上的日志复制到自己的中继日志(Relay Log)上3.从库读取中继日志的事件将其重放到从库数据中
http://www.huolong8.cn/news/27623/

相关文章:

  • 黄石建设网站公司哪家公司建站的
  • 网站音频播放器源码免费作图网站都有哪些
  • 网站公司seowordpress标签转拼音
  • 免费php企业网站管理系统那个网站开发三味
  • 头像网站模板免费注册跨境电商
  • 网站设计的总结百度流量推广项目
  • 同德县wap网站建设公司深圳物流公司查询大全
  • 外贸购物网站建设wordpress微信支付功能
  • 网站上的分享php网站建设价格
  • 网站开发系统源代码网站常见错误代码
  • 谈谈什么是网络营销织梦seo排名优化教程
  • 做非法网站怎么判刑设计工作室网站
  • 销售网站设计方案装企营销系统
  • 网站开发网页设计js郑州注册公司网上核名网站
  • 龙江做网站泰安企业网站建设公司
  • 建站模板安装视频教程全集wordpress字体加载慢
  • 电商网站建设概念乐平网站设计
  • 陕西有没有做网站好的公司wordpress内链插件
  • 企业网站建设方案新闻关键词挖掘工具爱网
  • 企业网站模板免费建设部的网站首页
  • 买表的网站农村电商做什么项目好
  • 韶山网站建设爱奇艺会员推广联盟
  • 国土局网站建设情况汇报外贸做哪些网站平台好
  • 平江外贸网站推广找哪家重庆360网络推广
  • 婚纱摄影类网站模板中国国建设监理协会网站
  • 招个网站建设维护采购招标网
  • 做网站卖产品投资大嘛购物网站怎么建立
  • php网站开发ppt实时视频网站怎么做
  • 自己设计好的网站怎么设置访问做外贸的人经常用什么网站
  • 手机商城网站模板个人备案经营网站备案