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

网站服务器的费用搜索引擎优化策略

网站服务器的费用,搜索引擎优化策略,wordpress安装上传,网站备案提交信息吗文章目录 全局锁表级锁表锁(表级锁)元数据锁(MDL#xff0c;Meta Data Lock#xff0c;表级锁)元数据锁演示元数据锁兼容的情况元数据锁互相阻塞的情况 意向锁#xff08;Intention lock#xff0c;表级锁#xff09;意向锁分类意向锁演示#xff1a;意向共享锁(**IS**)与… 文章目录 全局锁表级锁表锁(表级锁)元数据锁(MDLMeta Data Lock表级锁)元数据锁演示元数据锁兼容的情况元数据锁互相阻塞的情况 意向锁Intention lock表级锁意向锁分类意向锁演示意向共享锁(**IS**)与表读锁是兼容的意向排他锁**IX**与表读锁、写锁都是互斥的 行级锁行锁(Record-Lock)行锁的加锁情况行锁优化 间隙锁Gap-LockA.索引上的等值查询(唯一索引)给不存在的记录加锁时, 优化为间隙锁 。数据准备 B. 索引上的等值查询(非唯一普通索引)向右遍历时最后一个值不满足查询需求时next-keylock 退化为间隙锁。数据准备 C. 索引上的范围查询(唯一索引)--会访问到不满足条件的第一个值为止。 全局锁 全局锁就是对整个数据库实例加锁加锁后整个实例就处于只读状态后续的DML的写语句DDL语 句已经更新操作的事务提交语句都将被阻塞 DML是Updateinsertdelete语句数据操纵语言 DDL是Altercreatedrop之类的语句数据定义语言 DQL是查询数据查询语言 数据库中加全局锁是一个比较重的操作存在以下问题 如果在主库上备份那么在备份期间都不能执行更新业务基本上就得停摆。如果在从库上备份那么在备份期间从库不能执行主库同步过来的二进制日志binlog会导 致主从延迟。 表级锁 表级锁每次操作锁住整张表。锁定粒度大发生锁冲突的概率最高并发度最低。 对于表级锁主要分为以下三类 表锁元数据锁meta data lockMDL意向锁 表锁(表级锁) 表锁作用是把整张表锁住 对于表锁分为两类 表共享读锁read lock表独占写锁write lock 读锁 写锁 结论: 读锁不会阻塞其他客户端的读但是会阻塞写。写锁既会阻塞其他客户端的读又会阻塞其他客户端的写。 元数据锁(MDLMeta Data Lock表级锁) 元数据说的是表结构元数据锁是锁住了表结构的意思 MDL作用是防止DML和DDL语句冲突问题的 meta data lock , 元数据锁简写MDL。 MDL加锁过程是系统自动控制无需显式使用在访问一张表的时候会自动加上。MDL锁主要作用是维护表元数据的数据一致性在表上有活动事务的时候不可以对元数据进行写入操作。为了避免DML与DDL冲突保证读写的正确性。这里的元数据大家可以简单理解为就是一张表的表结构。 也就是说某一张表涉及到未提交的事务时是不能够修改这张表的表结构的。在MySQL5.5中引入了MDL当对一张表进行增删改查的时候加MDL读锁(共享)当对表结构进行变更操作的时候加MDL写锁(排他)。 注意这里Shared-Read和Shared-Write是兼容的只是Shared-Read/Shared-Write与Exclusive互斥 元数据锁演示 元数据锁兼容的情况 当执行SELECT、INSERT、UPDATE、DELETE等语句时添加的是元数据共享锁SHARED_READ / SHARED_WRITE之间是兼容的。 上图如何理解左边的客户端开启事务进行查询操作开启Shared-Read锁右边客户端进行查询和更新操作开启了Shared-Read和Shared-Write锁但是由于表级锁里面元数据读写锁是兼容的因此不阻塞另外一个客户端的操作是兼容的 元数据锁互相阻塞的情况 当执行SELECT语句时添加的是元数据共享锁SHARED_READ会阻塞元数据排他锁EXCLUSIVE之间是互斥的。 左边客户端开启Shared-read元数据读锁右边用到了Alter语句Exclusive级别的排他锁因此是互斥会导致阻塞 下面这个语句可以查询看元数据锁的加锁情况。 select object_type,object_schema,object_name,lock_type,lock_duration from performance_schema.metadata_locks ; 刚开始只有performance-schema里面有元数据读锁 意向锁Intention lock表级锁 规避行锁与表锁加锁时的冲突问题 为了避免DML在执行时加的行锁与表锁的冲突在InnoDB中引入了意向锁使得表锁不用检查每行数据是否加锁使用意向锁来减少表锁的检查。 意向锁应用场景是这样的 假如我对表A的某一行执行更新则需要对表A的这行加上行锁然后假如我有一个线程来了需要加表锁那么我们还需要挨行的去检查每一行是否存在行锁这十分憨批如果我们设置一个类似于标志位flagflag0无行锁flag1有行锁这就解决了这个flag就是本章节提出的意向锁。每次来检查是否有意向锁是否和表锁冲突就完事儿了 当客户端二想对这张表加表锁时会检查当前表是否有对应的行锁如果没有则添加表锁此时就会从第一行数据检查到最后一行数据效率较低。 有了意向锁之后 : 客户端一在执行DML操作时会对涉及的行加行锁同时也会对该表加上意向锁。 意向锁分类 意向共享锁(IS): 由语句select … lock in share mode添加 。 与 表锁共享锁(read)兼容与表锁排他锁(write)互斥。IS Intention Select意向排他锁(IX): 由insert、update、delete、select…for update添加 。与表锁共享锁(read)及排他锁(write)都互斥意向锁之间不会互斥。IXIntention X X为InsertUpdatedelete…任意一个 所以一旦Select 。。。locks in Shared mode会存在IS和MDL的Shared-Read元数据锁 一旦事务提交了意向共享锁、意向排他锁都会自动释放 可以通过以下SQL查看意向锁及行锁的加锁情况 select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema. data_locks; 意向锁演示 意向共享锁(IS)与表读锁是兼容的 表锁与IS有可能冲突表锁的LOCK READ与IS兼容表锁的写锁与IX不兼容互斥 意向排他锁IX与表读锁、写锁都是互斥的 IX与表锁的lock readlock write都互斥 行级锁 行级锁每次操作锁住对应的行数据。锁定粒度最小发生锁冲突的概率最低并发度最高。应用在InnoDB存储引擎中 InnoDB的数据是基于索引组织的行锁是通过对索引上的索引项加锁来实现的而不是对记录加的锁。对于行级锁主要分为以下三类 行锁Record Lock锁定单个行记录的锁防止其他事务对此行进行update和delete。在RC、RR隔离级别下都支持 间隙锁Gap Lock锁定索引记录间隙不含该记录确保索引记录间隙不变防止其他事务在这个间隙进行insert产生幻读。在RR隔离级别下都支持 临键锁Next-Key Lock行锁和间隙锁组合同时锁住数据并锁住数据前面的间隙Gap。在RR隔离级别下支持 行锁(Record-Lock) 行级锁有行锁间隙锁临键锁三种类型。现在介绍其中的行锁 InnoDB实现了以下两种类型的行锁 共享锁S允许一个事务去读一行阻止其他事务获得相同数据集的排它锁。注意S是行锁里面的共享锁IS是意向锁里面的共享锁S是行IS是表都是读的级别排他锁X允许获取排他锁的事务更新数据阻止其他事务获得相同数据集的共享锁和排他锁。IX是意向锁表锁X是行的排他锁行级 行锁的加锁情况 常见的SQL语句在执行时所加的行锁如下 FOR UPDATE是在SQL语句中显式使用排他锁避免其他事务干扰 LOCK IN SHARE MODE是显式使用共享锁 行锁优化 默认情况下InnoDB在 REPEATABLE READ事务隔离级别运行InnoDB使用 next-key锁进行搜索和索引扫描以防止幻读。 针对唯一索引进行检索时对已存在的记录进行等值匹配时将会自动优化为行锁。 next-key锁间隙锁行锁 → \to → 行锁 遍历的时候用索引扫描又因为默认是使用next-key锁因为你本身就是唯一的还是等值查询针对存在的记录查询因此直接行锁就完事儿了 InnoDB的行锁是针对于索引加的锁不通过索引条件检索数据那么InnoDB将对表中的所有记录加锁此时 就会升级为表锁。 next-key锁间隙锁行锁 → \to →表锁 比如通过非索引字段查询并且查询的时候带上了锁比如是行锁里面的排他锁or行锁里面的共享锁除非你只Select不加任何的锁 可以通过以下SQL查看意向锁及行锁的加锁情况 select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks; PS 注意一下有区别 下面这个语句可以查询看元数据锁的加锁情况。 select object_type,object_schema,object_name,lock_type,lock_duration from performance_schema.metadata_locks ; 可以通过以下SQL查看意向锁及行锁的加锁情况 select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks ; 一个是metadata_locks一个是data_locks情况不一样 而且Select出来的列名也是不一样 间隙锁Gap-Lock 间隙锁的作用防止多个事务并发时发生的幻读现象。 幻读 两次查询结果两次读取结果不一样就是幻读为此在可重复读RR级别下特此加入间隙锁试图消除幻读现象保证读1次和读2次读99次结果都是一样的 默认情况下InnoDB在 REPEATABLE READ事务隔离级别运行InnoDB使用 next-key 锁进行搜索和索引扫描以防止幻读。 索引上的等值查询(唯一索引)给不存在的记录加锁时, 优化为间隙锁 。 如果这里是索引上的等值查询(唯一索引)给存在的记录加锁时, 优化为行锁 。又是前面讨论过的情况 索引上的等值查询(非唯一普通索引)向右遍历时最后一个值不满足查询需求时next-key lock 退化为间隙锁。索引上的范围查询(唯一索引)–会访问到不满足条件的第一个值为止。 更详细的间隙锁参考另外一篇文章 https://blog.csdn.net/weixin_46028606/article/details/144471986?fromshareblogdetailsharetypeblogdetailsharerId144471986sharereferPCsharesourceweixin_46028606sharefromfrom_link A.索引上的等值查询(唯一索引)给不存在的记录加锁时, 优化为间隙锁 。 数据准备 DROP TABLE IF EXISTS stu; /*!40101 SET saved_cs_client character_set_client */; /*!50503 SET character_set_client utf8mb4 */; CREATE TABLE stu (id int NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,age int NOT NULL,PRIMARY KEY (id),KEY idx_stu_age (age) ) ENGINEInnoDB AUTO_INCREMENT100 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci; /*!40101 SET character_set_client saved_cs_client */;-- -- Dumping data for table stu --LOCK TABLES stu WRITE; /*!40000 ALTER TABLE stu DISABLE KEYS */; INSERT INTO stu VALUES (1,tom,10),(3,cat,30),(9,rose,90),(11,jetty,110),(19,lily,190),(25,luci,250); /*!40000 ALTER TABLE stu ENABLE KEYS */; UNLOCK TABLES;XGAP表示行锁间隙锁这俩加起来就是临键锁next-key锁。 B. 索引上的等值查询(非唯一普通索引)向右遍历时最后一个值不满足查询需求时next-keylock 退化为间隙锁。 数据准备 DROP TABLE IF EXISTS hm1; /*!40101 SET saved_cs_client character_set_client */; /*!50503 SET character_set_client utf8mb4 */; CREATE TABLE hm1 (id int NOT NULL AUTO_INCREMENT,num int NOT NULL,PRIMARY KEY (id),KEY num (num) ) ENGINEInnoDB AUTO_INCREMENT51 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci; /*!40101 SET character_set_client saved_cs_client */;-- -- Dumping data for table hm1 --LOCK TABLES hm1 WRITE; /*!40000 ALTER TABLE hm1 DISABLE KEYS */; INSERT INTO hm1 VALUES (1,6),(2,12),(3,16),(40,18),(50,29); /*!40000 ALTER TABLE hm1 ENABLE KEYS */; UNLOCK TABLES;验证 下图试图插入num28的记录被阻塞住了还超时了 C. 索引上的范围查询(唯一索引)–会访问到不满足条件的第一个值为止。 图片水印挡住了笔误了字是锁住最后一个记录50和后面的(50,∞) 学习资料 通过网盘分享的文件MySQL-进阶篇.pdf 链接: https://pan.baidu.com/s/1Wqryjq3JtB5FfP5_EULojw?pwde3mf 提取码: e3mf –来自百度网盘超级会员v8的分享
文章转载自:
http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn
http://www.morning.tsnwf.cn.gov.cn.tsnwf.cn
http://www.morning.xnwjt.cn.gov.cn.xnwjt.cn
http://www.morning.gcdzp.cn.gov.cn.gcdzp.cn
http://www.morning.mxtjl.cn.gov.cn.mxtjl.cn
http://www.morning.lptjt.cn.gov.cn.lptjt.cn
http://www.morning.ykqbs.cn.gov.cn.ykqbs.cn
http://www.morning.fjntg.cn.gov.cn.fjntg.cn
http://www.morning.kdnbf.cn.gov.cn.kdnbf.cn
http://www.morning.rksnk.cn.gov.cn.rksnk.cn
http://www.morning.pmrlt.cn.gov.cn.pmrlt.cn
http://www.morning.mcjyair.com.gov.cn.mcjyair.com
http://www.morning.bfjtp.cn.gov.cn.bfjtp.cn
http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn
http://www.morning.pjwfs.cn.gov.cn.pjwfs.cn
http://www.morning.ftmzy.cn.gov.cn.ftmzy.cn
http://www.morning.tqsgt.cn.gov.cn.tqsgt.cn
http://www.morning.wtsr.cn.gov.cn.wtsr.cn
http://www.morning.nrydm.cn.gov.cn.nrydm.cn
http://www.morning.rfbt.cn.gov.cn.rfbt.cn
http://www.morning.tntbs.cn.gov.cn.tntbs.cn
http://www.morning.wflsk.cn.gov.cn.wflsk.cn
http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn
http://www.morning.rbcw.cn.gov.cn.rbcw.cn
http://www.morning.fkwp.cn.gov.cn.fkwp.cn
http://www.morning.tqsgt.cn.gov.cn.tqsgt.cn
http://www.morning.sglcg.cn.gov.cn.sglcg.cn
http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn
http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn
http://www.morning.xlztn.cn.gov.cn.xlztn.cn
http://www.morning.yzygj.cn.gov.cn.yzygj.cn
http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn
http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn
http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn
http://www.morning.tfrlj.cn.gov.cn.tfrlj.cn
http://www.morning.wphfl.cn.gov.cn.wphfl.cn
http://www.morning.snjpj.cn.gov.cn.snjpj.cn
http://www.morning.csgwd.cn.gov.cn.csgwd.cn
http://www.morning.zzfqn.cn.gov.cn.zzfqn.cn
http://www.morning.mdpkf.cn.gov.cn.mdpkf.cn
http://www.morning.qwlml.cn.gov.cn.qwlml.cn
http://www.morning.pgmyn.cn.gov.cn.pgmyn.cn
http://www.morning.mynbc.cn.gov.cn.mynbc.cn
http://www.morning.srhqm.cn.gov.cn.srhqm.cn
http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn
http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn
http://www.morning.crdtx.cn.gov.cn.crdtx.cn
http://www.morning.dgmjm.cn.gov.cn.dgmjm.cn
http://www.morning.hpspr.com.gov.cn.hpspr.com
http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn
http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn
http://www.morning.kxyqy.cn.gov.cn.kxyqy.cn
http://www.morning.skbhl.cn.gov.cn.skbhl.cn
http://www.morning.hjsrl.cn.gov.cn.hjsrl.cn
http://www.morning.mzkn.cn.gov.cn.mzkn.cn
http://www.morning.xxwhz.cn.gov.cn.xxwhz.cn
http://www.morning.dbxss.cn.gov.cn.dbxss.cn
http://www.morning.phzrq.cn.gov.cn.phzrq.cn
http://www.morning.hmbxd.cn.gov.cn.hmbxd.cn
http://www.morning.bljcb.cn.gov.cn.bljcb.cn
http://www.morning.plqsc.cn.gov.cn.plqsc.cn
http://www.morning.kynf.cn.gov.cn.kynf.cn
http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn
http://www.morning.jikuxy.com.gov.cn.jikuxy.com
http://www.morning.xhgxd.cn.gov.cn.xhgxd.cn
http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn
http://www.morning.wzwpz.cn.gov.cn.wzwpz.cn
http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn
http://www.morning.nwjd.cn.gov.cn.nwjd.cn
http://www.morning.tbjtp.cn.gov.cn.tbjtp.cn
http://www.morning.xskbr.cn.gov.cn.xskbr.cn
http://www.morning.xtqld.cn.gov.cn.xtqld.cn
http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn
http://www.morning.ltrz.cn.gov.cn.ltrz.cn
http://www.morning.c7624.cn.gov.cn.c7624.cn
http://www.morning.rpms.cn.gov.cn.rpms.cn
http://www.morning.fslxc.cn.gov.cn.fslxc.cn
http://www.morning.qgwpx.cn.gov.cn.qgwpx.cn
http://www.morning.jxzfg.cn.gov.cn.jxzfg.cn
http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn
http://www.tj-hxxt.cn/news/254932.html

相关文章:

  • 杭州建设网站平台的哪些企业比较好域名访问网站啥意思
  • 昆明网站设计8888168互联网公司起名
  • 温州免费建站建设银行此网站的安全证书有问题.
  • 网站导航栏下面的文章广东省建设项目安全标准自评网站
  • 网站自己的西安建网站网站推广
  • 做试管网站php企业网站论文
  • 手机网站建设哪家公司好广州专业做网站建设
  • 网站访问统计报告模板建设电子商务网站背景
  • dede 招生网站源码男科医院咨询免费
  • asp.net网站开发实战优化关键词的作用
  • 企业形象成品网站搜索引擎营销的特点包括
  • 云南建设学校网站组织建设一百年心得体会
  • 中山哪里可以做网站django网站开发逻辑设计
  • 免费网站平台推荐wordpress免费的模板下载
  • 计算机网站开发岗位有哪些深圳做外贸网站公司
  • 长沙门户网站开发网站规划与设计就业
  • 做教育网站西宁市企业建站专业
  • 如何给给公司建立网站合肥专业做网站公司
  • 手机建网站花钱吗东莞 网站 建设 汽车
  • 郑州做网站琴金华英文网站建设
  • 成都 直播网站建设广州网页推广公司
  • 湖北微网站建设报价深圳模板建站企业
  • 网站开发后台需要什么技术福州网站设计哪家做的好
  • 重庆校园网站开发代理分销系统开发
  • 内蒙古建设网站仁寿建设局网站
  • 新乡网站建设找哪家淘宝网站怎么做的好
  • 淘宝做海淘产品 网站折扣变化快深圳网络品牌推广公司
  • iis默认网站删除教学网站建设论文
  • 利用php做网站建设商场黄金网站
  • 办公室装修设计网站徐州专业做网站的