想了很久要不要发一篇关于MySql优化的文章最后还是决定把它写出来。以输出倒逼自己复习与输入。以下内容大都参考了《高性能MySQL》一书也好把一些的章节做一个总结。全文的聊到的三个主要能容是:

MySql的特点与存储引擎

MySql高性能索引

MaySql的数据类型优化与查询性能优化

MySql的特点与存储引擎

MySql的总体架构图

用户执行Mysql的流程图:

上层的一些服务并不是Mysql特有的,比如说Mysql的服务器会启动连接池然后对客户端做连接处理授权认证安全等工作。

中间的架构包括查询解析、分析、优化和缓存等跨存储引擎的过程。

底层是存储引擎,负责Mysql数据的存储和提取,但是一般的存储引擎是不会去解析SQL语句的(但是InnoDB可以去解析外键的定义),不同的存储引擎之间是不会通信的而只是单纯的处理上层服务器的请求。

 

数据库中的

按照互斥性来说

共享锁(之间不互斥),排他锁(与其他任意锁都互斥)。在一般情况下读锁是共享锁,写锁是排他锁。需要注意的是,写锁的优先级比较高一个写锁的请求可能被插入到读锁队列的前面反之不然。

按照粒度来说

一般有表锁(粗粒度效率低)与行锁(细粒度并发效率高)。所谓的锁的策略就是在锁的开销与数据的安全性之间寻找一个平衡。

死锁

就是多个事务在同一资源上相互占用,并锁定对方占用的资源从而导致的恶性循环的现象。好在Mysql会自动检测和处理死锁。InnoDB的处理策略是将持有最少行级排他锁的事物回滚。

事务(略)

这里只强调一点就是,没有100%的持久化,否则备份是不会增加持久性的。

另一种高并发策略——MVCC

Mysql大多数的存储引擎并不是简单是实现了行级锁,他们同时实现了MVCC(多版本并发控制)。MVCC可以认为是行级锁的一个变种,但是它在很多的情况下都避免了加锁(只有在写入操作的时候才加锁)。MVCC是通过保存数据在某一个时间点的快照来实现的,也就是不管什么时候每个事物看到的数据都是一致的。也就是可能存在不同的事务在同一时刻看到的数据是不同的。别着急我们慢慢来。

MVCC的原理就是在数据的每一行后面增加两个列,一列保存的是创建时间另一列保存的是删除时间(准确的说是系统的版本号)。下面我们以REPEATABLE READ的隔离级别举个例子。

 

SELECT

首先是查询,当一个事务开启是能够查到的数据得满足两个条件

  • 创建时间在当前事务开启之前(包含当前事务)
  • 删除时间在当前事务之后

只有同时满足这两个条件的行才能够被当前的事务所查到。

INSERT

当当前的事务新增一条数据的时候,会将当前的版本号分配给当前新增的每一行。

 

DELETE

会将当前的版本号分配给删除的每一行作为删除时间。

UPDATE

会新插入一条数据版本号为当前的事务版本号,旧的那一条数据会设置当前事物的版本号为删除时间。

 

总结:增加了这样的两个版本号,会使得效率大大提高但是会花掉空间的成本。

 

InnoDB与MyISAM存储引擎的区别

比较项目

InnoDB

MyISAM

数据存储

存在表空间(是由InnoDB管理的黑盒子由一系列数据文件组成)

存储在数据文件与索引文件中

事务

支持事务

不支持事务

行级锁

支持行级锁

不支持行级锁(但是支持表级索)

全文检索

不支持全文检索

支持全文检索

外键

支持外键

不支持外键

 

Momory引擎

所有的数据都保留在内存中,不需要进行磁盘的IO所以读取的速度很快。但是一旦关机的话表的结构会保留但是数据就会丢失。

Memory表支持Hash索引,因此查找速度很快。即便如此它还是不能代替基于磁盘的引擎因为它只是支持表锁所以并发写入的效率不高。同时它不支持TEXT与BLOB数据类型,而且没有varchar类型(即使写了varchar也会自动转换成char类型)所以会造成内存的浪费。

 

总结:默认使用InnoDB存储引擎。例如:即使是需要全文索引我们也可以通过InnoDB与Sphinx的组合,而不是直接使用MyISAM。

 

创建高性能的索引

索引的概念就不多说了,这种数据结构可以大幅度的减少我们查找数据的时间。从架构上来说它是在存储引擎层面实现的。

B-Tree与B+Tree索引

先上图:

(图片来自csdn gitchat)

从图中我们可以看到数据的特点。所有真实的数据都是排好序的在B-Tree的叶子节点上,这些节点到根的距离是一样的。当我们要查找一个具体的数据的时候,首先会从根节点开始找每一次都会根据大小选择一个分支,这样的话大大减少了查找的次数。从此再也不需要全表的扫描了。同时B-Tree的数据是按照顺序来存放的对顺序值的查找(对索引列进行OrderBy操作)也是非常快的。这样的话避免了很多随机的IO。

这里需要注意的是如果存在多个索引数据库的排序规则。按照create 表的时候的索引出现的先后顺序来排序的。如果前一个指标一样那么则使用后一个指标来排序。同时如果有多列索引的话那么我们只能够从最左列开始查找。不能跳过索引的列,所以对于列的先后顺序也是我们优化的一个指标。

最后,B+Tree比B-Tree多了一个节点之间的顺序扫描。

 

哈希索引

哈希索引的底层是Hash表,每查一个值之前首先计算它的hashcode然后找到对应数据的指针,最后根据指针去找到真实数据。它有以下几点注意事项:

  • 只能使用精确查询,这个与hash表的特点有关。
  • 它不是按照索引值的顺序来存储的所以不能用于排序。
  • 只能有等值查询不能查询>  < 等关系运算。
  • Hash冲突时会遍历对应Hash码的对应的链表的所有节点,而且维护成本高每删除一条记录时就会修改对应的Hash表。

自适应Hash索引

在innodb中如果有些索引使用的非常频繁的时候,就可以考虑使用自适应Hash索引。它对查询的性能的提升是非常明显的。

它的设计原理非常简单,就是让一个字段的Hash值作为索引,然后再使用B+Tree来进行查询。从这里我们可以看出这与真正的Hash索引是不同的,真正执行查询的是B+Tree,我们只是在查询之前计算了一次Hash值。这样我们可以做出以下的优化,案例如下:

Select id from url where url = “http://www.mysql.com”;

 

Select id from url where

url = “http://www.mysql.com” 

and url_crc=crc32(“http://www.mysql.com”);

 

其中crc32就是我们所指定的Hash函数。如果以它为索引,那么Mysql的优化器就会选择性能高的url_crc来实现查找。即使出现了hash冲突(也就是同一个Hash值会对应不同的url)我们也早已过滤掉了大部分的无用信息而不再像从前一样进行逐个比较了。当然自适应Hash索引也有自己的优点就是需要维护Hash索引,而且要处理Hash冲突尤其是在数据量较大的情况下。这里给出一个处理Hash冲突的建议就是使用多个where条件来保证查询的准确性。

小节:索引的优点

  1. 索引大大减少了服务器需要扫描的数据量。
  2. 索引可以避免服务器排序和建立临时表。
  3. 索引可以将随机的IO变成顺序的IO。

 

高性能索引的策略

独立的列

独立的列是指,索引列不能成为表达式或者参数的一部分否则就会失效。比如说下面的索引列就没有发挥作用。

比如actor_id列为索引列那么

Select actor_id from mytable where actor_id + 1 = 5;

 

前缀索引和索引的选择性

在数据量大索引的字段过长的时候,索引本身也会占用较大的空间。这样会使得索引变得大而且慢,所以我们有时候使用索引的前缀来代替索引以此来减短索引列的长度减少索引所占的空间。

这里不得不提出一个概念就是索引的选择性,它是指不重复的索引值与记录总数的比值。索引的选择性越高则查询性能越高,因为在查询时会过滤掉更多的行。唯一索引的选择性是1,而大多数的索引往往是一对多的。与此同时在数据库上有这样的一个事实,使用的索引前缀越短则索引的选择性广义的单调递减,使用的索引越长则索引的选择性广义单调递增。这就出现了一个高选择性与短前缀之间的一种平衡。我们的策略是尽可能的选择一个临界值的长度一旦超过这个长度索引的选择性会提升的很慢。那么这个时候我们的前缀索引是性价比最高的。

选择合适的索引列顺序

当有多列索引时,索引列的顺序极大的影响着我们的查询效率。通常情况下(不考虑排序和分组的情况下)我们把高选择性的索引列放在最前面,以保证在查询刚开始的时候就可以过滤大部分的数据。实务上我们需要根据经验来调整索引的顺序,比如说把IO的优化放在第一位,甚至是修改程序代码来达到查询的优化。

举个栗子:

查找一个名字叫“主流7”,而且在15软件G2班的同学的信息。

已知名字叫主流7的人有10000条,而15软件G2班只有30人。这个时候我们优先查出15软件G2班的人然后再去找名字叫主流7的人的效率要远远高于,找出所有名字叫主流7的人然后再看那个是属于15软件G2班的人的效率。

聚簇索引

聚簇索引不是一种单独的数据存储类型而是一种数据的存储方式,。所谓聚簇就是数据和相邻的键值紧凑的存放在一起(也就是数据怎么存放索引就怎么建立)所以一个表只能够有一个聚簇索引,因为它的数据只能以一种方式来存储。(聚簇索引的定义还待考究)。

 

聚簇索引与非聚簇索引(二级索引)

聚簇索引与非聚簇索引的具体实现与底层的存储引擎相关。下面分别以MySQL中的两大主流引擎来展开讨论。

InnoDB

InnoDB的聚簇索引就是表本身,它由表的数据与B+Tree索引组成。

其中内部节点中包括索引列和指向下一节点的指针,而叶子节点包括表所有列上的数据,比如主键列,MVCC列,回滚列其它列等等。所以我们在查询数据时直接就能够查找到我们想要的数据。

InnoDB的二级索引(非聚簇索引)

内部结点中包含索引列与指向下个节点的指针,而叶子节点则包括索引列和主键值。这也就造成了如果我们想要通过二级索引去查询一条数据的啥时候需要两轮的查询,第一轮是通过B+Tree查找到主键值,第二轮就是拿着主键值再经过一次B+Tree的查找找到真实的值。

MyISAM

MyISAM的索引聚簇索引和非聚簇索引原理相同,就是内部结点都包含有索引列和指向下一个节点的指针,在叶子节点中包含的是行号,指向实际的物理地址。

 

避免随机的聚簇索引

当表中没有什么数据需要聚集时,我们一般可以使用一个代理主键(与业务无关的键)去作为聚簇索引比如说一列自增的键。自增的键有一个好处就是在增加一条记录的时候会按照顺序插在最后面这样的话会非常节省资源因为它既避免了页分裂同时也避免了由页分裂而产生的内存碎片化。

另一方面,随机的聚簇索引(特别是对于一些IO密集的应用)使用随机的聚簇索引是很糟糕的,它使得聚簇索引的插入变得完全随机,使得数据完全没有聚集特性。下面具体说说随机的聚簇索引的缺点:

  • 将要写入的目标页有可能已经不在内存中(或者是缓存中了),所以在写入时首先需要将目标页从硬盘读到内存中。这将导致大量的随机IO。
  • 因为写入时乱序的,所以InnoDB不得不频繁的做页分裂操作,这将会大量的移动数据。
  • 由于页分裂,所以会导致页变得稀疏并且不规则的填充,最终数据会有碎片。

综上我们要避免随机的聚簇索引。顺便自增的索引在高并发的时候也会产生线程安全问题,所以我们可以使用innodb_autoinc_lock_mode参数配置来保证自增的原子性。

小节

简单说一下InnoDB的聚簇索引的特点:

  1. 通过一个指标把与这个指标相关联的数据聚集起来,当查询与这个指标相关的数据时能够避免多次IO带来的效率底下。但是,当数据都在内存中进行运算时这时也就不会有

IO带来的效率问题了。

  1. 查询速度快,不像二级索引一样需要两轮查找。
  2. 索引的维护成本高,更新聚簇索引插入新的行可能会造成如果按照索引的顺序插入还好但是如果一旦在中间插入新的行就会导致页分裂的问题这样既使得更新的效率低下,又会造成内存的浪费。

覆盖索引

如果一个索引中包含我们想要查的那一列的值,我们就说这个索引就是覆盖索引。当我们需要查询被覆盖的列的值的时候可以直接查询覆盖索引中的值而无需回到表中查询数据。这样我们就可以说这次查询的表中的数据被索引中的数据给覆盖了。下面介绍它的一些优点:

  • 可以配合InnoDB的二级索引来实现单次查询,如果二级索引能够覆盖查询就能够办到。
  • 因为索引是按照顺序的(或者是局部有序)那么对于当前列值的IO密集型范围查询会大大减少随机IO。
  • 索引的条目通常远小于数据行的大小,如果能直接从索引中获取数据那么会极大地减少数据的访问。减少了服务器的负载压力。

不是所有的引擎都支持覆盖索引,MySQL只支持基于B-Tree的覆盖索引。有的查询是是不能够使用覆盖索引的,比如说非前缀的like模糊查询。还有的查询他们要查询表中的很多列没有一个所以是可以覆盖很多列的所以只能够先利用覆盖索引过滤掉大多数的数据行,然后再在这个基础上进行查询,我们把这种查询方式叫做延迟关联。

 

数据类型优化与查询优化的一些经验法则

数据类型优化

MySQL支持的数据类型是很多的,选择好合适的数据类型对于节省内存和提升性能意义重大。下面介绍几点经验法则:

  1. 如果能够正常存储数据那么一般使用更小的数据类型。
  2. 尽量避免null值,null值可以是任何数据类型的默认值,但是null使得索引索引统计和值的比较都变得复杂。
  3. TIMESTAMP与DATATIME的选择,TIMESTAMP的时间范围较DATATIME小的多,但是

TIMESTAMP占用的内存是DATATIME的一半并且能够随着时区不断地变化。

  1. 整数类型有可选的unsigned属性,如果我们的数值无需负数的话那么推荐使用这种类型,举例来说TINYINT UNSIGNED与TINYINT的存储范围都是256但是前者是0~255,后者是-128~127。
  2. DECIMAL类型是一种存储方式,它可以用于精确计算。在计算过程中它会转化成double类型,但是DECIMAL的精确计算代价很高。为了减少这种高消耗我们可以在保留精度的条件下使用BIGINT来存储数据。举例来说,比如要保留6位小数,那么我们在存储数据的时候就可以给每一个数乘以100万,然后在取数据的时候在给每一个数除以100万。以减少代价。
  3. Varchar与char。它们的存储方式与存储引擎相关,下面以InnoDB或MyISAM为例。

Varchar长度可变一般来说是节省空间的,但是如果使用ROW_FORMAT=FIXED参数创建表的话那么varchar也是固定的长度。Varchar有一个特点就是需要在存储空间末尾开辟一到两个字节记录字符串的长度。当字符串长度的方差大的时候(比如说使用了UTF-8这样的字符集)那么推荐使用varchar。

Char是定长的数据类型,非常适合存储定长的数据比如说MD5码。对于非常短的列也有非常高的效率,比如说表示一个只有true/false的值char(1)的效率要高于varchar(1)因为varchar(1)后面会附加一个记录长度的额外字节。

  1. 当存储IP地址时使用无符号整数,因为IP地址本来就是32位的无符号整数。使用

INET_ATON()与INET_NTOA()完成他们之间的转换。

查询优化

搞清楚查询的生命周期对于优化查询是十分必要的,如果把查询看作是一个任务那么它就是由很多的子任务所构成。查询的生命周期大致可以分为这样的几个阶段:从客户端到服务器,然后在服务器上解析,生成执行计划、执行最后返回结果给客户端。这里我再次贴上这张图

其中执行阶段可以认为是最重要的阶段这一阶段包括大量的检索数据到存储引擎的调用以及调用后的数据处理,包括排序,分组等。除此之外查询还要在不同的地方花费时间,包括网络,CPU计算,生成统计信息和执行计划,锁等待等等。

优化数据访问

减少请求无用的数据,比如说我们查询了100条数据但是最后只在得到的结果中取了其中的10条(在应用程序中完成的)。这样不仅仅是耗费了大量的计算机资源也耗费了大量的网络资源。所以在这种情况下我们尽早使用limit语句来过滤或者是使用索引来过滤。

重构查询方式

一般情况下我们倾向于使用尽可能少的SQL语句去完成查询操作,这样能够减少发送查询的次数。但是有时候我们需要将大的查询拆分成一些小的查询。比如说在删除大量的数据时数据库(假设数据库支持锁)会将大量的数据锁住这样的话其它的语句就会在队列中等待。这时候将删除的任务分为几波就可以更加高效。

有时候我们也需要将查询的连接放在应用中,将一个连接查询拆分成几个小的查询。这样带来的的好处就是避免了几张表连接时占用的大量内存,而且更加有利于利用缓存(如果关联的表中某个表发生了改变将无法使用缓存,但是当拆开之后某个表发生了细微的变换之后还可以使用缓存)。最后拆开之后还可以减少锁的竞争。

优化特定类型的查询

这里仅仅介绍几个经验的法则:

  • 当统计行数的时候尽量使用count(*),当我们以某一列为统计指标的时候,如果碰到null的时候就会不把这一行统计在内。而在MySQL的底层也会将count(col)优化成count(*)。
  • 要尽可能的保证GROUP BY和ORDERBY语句中只包含一个列,这样MySQL才有可能使用索引来优化查询。
  • 要时时注意子查询,子查询构成的虚表是没有任何索引的。
  • 优化LIMIT分页,在一般情况下我们会使用LIMIT加上偏移量来搞定,这时如果有合适的索引的话效率一般不会错,但是如果只是一味的使用LIMIT语句的话,比如有1000,20这样的语句的话前面的需要查询1020条记录然后抛弃前面的1000条数据,这个代价是非常高的。一般的做法是尽可能的使用覆盖索引(里面可以包含我们想要的值)做延迟关联这样的效率就会很高。举个例子:以下代码使用方案2

select film_id,description, from sakila.film order by title limit 50,5;

Select film.film_id,film.description

from sakila.film

inner join(

Select film_id from sakila.film order by title limit 50,5

) as lim using(film_id);

 

至此我的有关于数据库的优化的知识点输出完毕。同时也希望能够帮助到你。最后,欢迎批评。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. STM32看门狗(独立IWDG+窗口WWDG)介绍

    单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗就是为了避免这样的情况的发生。如果系统出问题,没有给看门狗喂狗,看门狗就由于超时将CPU复位。 看门狗在长期工作的产品中用到比较多,作用很简单,防止死机。看门狗的功能也可用于定时计数等。文章目录…...

    2024/3/7 12:20:26
  2. STM32f103 看门狗使用

    //看门狗使用需要计算超时时间 // IAR 7.1 #ifndef __STM32_WDG_H__ #include "stm32f10x.h" #define LSI_FREQ 40000 void stm32_wdg_init(void); void stm32_wdg_enable(void); void stm32_wdg_feed(void); #endif #include "stm32_wdg.h" #include &q…...

    2024/3/7 12:20:25
  3. 一些mysql数据库性能优化方法 (17/2/28整理)

    一、MySQL 数据库性能优化之SQL优化优化目标1.减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。2.降低 CPU 计…...

    2024/3/7 12:20:24
  4. HTML5 多线程处理

    HTML5中我觉得最有用和激动人心的功能就是引入了线程的概念,从而我们可以用多线程的思想来处理比较复杂的应用。我们可以让前台线程去完成和用户交互的工作,而把比较复杂的,耗时较长的运算放在后台线程中完成,而让前台线程与后台线程通过消息交互.(注意:后台线程是不可以直…...

    2024/3/7 12:20:22
  5. stm32--独立看门狗使用

    我采用得是STM32F10RC 参考得是STM32普中科技的给出得例子:https://www.bilibili.com/video/av30149282/?p=45(这里给出网址)1、基本介绍包含有两个看门狗,独立看门狗:IWDG 窗口看门狗:WWDG用来检测由于软件错误导致的故障。看门狗由VDD电压与供电,在停止和待机模式…...

    2024/3/7 12:20:21
  6. HTML5铸就VMware新特性,WSX技术能让浏览器远程运行虚拟桌面 .

    from: http://blog.csdn.net/wuyelvcha/article/details/7377367 VMware公司的虚拟机可能很多人都用户过,他们正开发一项让人兴奋的新特性,允许用户使用浏览器远程访问虚拟桌面。该技术的开发实施者,VMware公司的克里斯提哈蒙德(Christian Hammond)近日在其博客上展示…...

    2024/3/7 12:20:20
  7. MySQL数据库优化概述

    一,数据库优化的目的 1,避免出现页面访问错误 由于数据库的timeout产生的5**错误; 由于慢查询造成的也没无法加载; 由于阻塞造成数据无法提交;2,增加数据库的稳定性 很多数据库的问题都是由于低效的查询引起的;3,优化用户体验 流畅页面的访问速度; …...

    2024/3/7 12:20:19
  8. STM32 IWDG独立看门狗 定时时间计算

    运用前须知: 1、IWDG所用计时时钟是不稳定的(35-60KHZ),通常取40KHZ计算. 对以下代码段,定时时间为:T=prer/40000*rlr,单位是S void watchdogInit(uint8_t timeoutS)//宏 {uint8_t prer = 4;uint16_t rlr = timeoutS * 625;IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable…...

    2024/3/4 10:44:02
  9. 让IE支持HTML5的新属性:Placeholder,Autofocus

    借助jquery,让IE也支持HTML5新属性:Placeholder,Autofocus。 <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta na…...

    2024/3/4 10:44:00
  10. STM32L151 的ADC的模拟看门狗中断和溢出中断

    现场条件: 1.AD采集,DMA传输;AD设置为单通道的持续模式,DMA设置为单次模式。AD模拟看门狗设置的上门槛小于AD采集值,下门槛大于AD采样值,当DMA单次结束后,即会发生AD看门狗中断和溢出中断 void ADC1_IRQHandler(void) {if(ADC_GetITStatus(ADC1, ADC_IT_OVR) != RESET){…...

    2024/3/4 10:43:58
  11. mysql数据库库推荐书籍

    一,《MySQL必知必会》《MySQL必知必会》MySQL是世界上最受欢迎的数据库管理系统之一。书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。通过重点突出的章节,条理清晰、…...

    2024/3/7 12:20:18
  12. 知乎网解决HTML5 Placeholder的方案

    使浏览器支持Placeholder有很多方法,都不是很完美,或多或少有点问题,且有些原生支持的浏览器在获得焦点时会清空Placeholder提示。发现知乎网的解决方法不错,特记录下。 windows系统中以下浏览器测试通过:Google Chrome 18,Firefox 12,IE 9,IE 6,Opera 11.5。在androi…...

    2024/3/7 12:20:17
  13. STM8S_008_WDG独立看门狗和窗口看门狗

    相关标题:STM8S看门狗、IWDG、WWDGⅠ、写在前面STM8S看门狗WDG分为两类:IWDG:Independent WatchDog独立看门狗WWDG:Window WatchDog窗口看门狗 独立看门狗模块可以用于解决处理器因为硬件或软件的故障所发生的错误。它由一个内部的128kHz的LSI阻容振荡器作为时钟源驱动,因…...

    2024/3/7 12:20:16
  14. zabbix的数据库优化

    zabbix数据库优化参考文档: https://www.zabbix.org/wiki/Docs/howto/mysql_partition https://www.kancloud.cn/devops-centos/centos-linux-devops/375488my.cnf的参数的调整要根据实际应用和长期使用中慢慢去调整,此处主要是创建四个存储过程: create,drop,maintena…...

    2024/3/25 10:27:24
  15. Wadda:基于 HTML5 Canvas 的图片放大镜

    简介  Wadda 是下一代图片放大技术,使用 HTML5 Canvas 实现图片放大镜功能。借助 HTML5 Canvas 标签,能够自定义放大级别而不需要为每个级别定义图片,还能够设置羽化(Fading)效果。 使用方法使用非常简单,只需在img标签的title属性中设置放大图片的路径,例如:<im…...

    2024/3/7 12:20:14
  16. STM32学习笔记——窗口看门狗WWDG介绍及配置

    WWDG 窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位(WWDG->CR 的第六位)变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器(WW…...

    2024/3/7 12:20:13
  17. STM32F4 ADC1 模拟看门狗【库函数操作】

    ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LTR中设置。库函数是使用ADC_AnalogWatchdogThresholdsConfig设置的,无论是常规通道还是注入通道,都非常简单。当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断。捕获这…...

    2024/3/7 12:20:12
  18. Mysql数据库如何优化?从哪几个方面考虑?

    首先应该想到的是:1、优化分片键(如果有分库分表)(1)不要使用分区,分区性能很低,难以维护(2)不要使用主从数据库,读写分离有了缓存就再也不需要分主从了,毕竟延迟问题是无法解决的(虽然很小)(3)如果使用分库分表,那么查询条件务必先走分片键,否则就成了全表查…...

    2024/3/7 12:20:11
  19. HTML5 利用canvas API 展示阴影效果

    HTML5的Canvas自带API可以显示阴影效果,主要还是在画布(canvas)的上下文对象(context)上做文章<!DOCTYPE html> <head> <meta charset="UTF-8"> <title>HTML5 Combine Shape DEMO</title> <script type="text/javascript&quo…...

    2024/3/7 12:20:10
  20. stm32独立看门狗的溢出时间说明

    ...

    2024/3/28 20:51:00

最新文章

  1. ChatGLM3:AttributeError_ can‘t set attribute ‘eos_token‘

    最近在微调 ChatGLM3-6b 时&#xff0c;训练好模型之后&#xff0c;调用inference_hf.py函数验证模型的时候报了如下错误&#xff0c;下面是解决方案。 我在训练时使用的是ptuning_v2.yaml配置文件&#xff0c;训练运行代码如下&#xff1a; CUDA_VISIBLE_DEVICES1 python fi…...

    2024/3/28 22:19:04
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. html5cssjs代码 035 课程表

    html5&css&js代码 035 课程表 一、代码二、解释基本结构示例代码常用属性样式和装饰响应式表格辅助技术 一个具有亮蓝色背景的网页&#xff0c;其中包含一个样式化的表格用于展示一周课程安排。表格设计了交替行颜色、鼠标悬停效果以及亮色表头&#xff0c;并对单元格设…...

    2024/3/28 14:01:13
  4. MySQL基础之锁

    基本概念 锁是一种协调多个事务对同一数据并发访问的一种机制。它确保了数据库的一致性和完整性&#xff0c;防止多个事务同时修改一份数据导致冲突。 锁的类型 锁分为全局锁、表级锁、行级锁。全局锁会锁定整个数据库实例&#xff0c;使其处于只读状态&#xff1b;表级锁会在…...

    2024/3/28 14:17:13
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/3/27 10:21:24
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/3/24 20:11:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/3/18 12:12:47
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/3/24 20:11:23
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/3/26 20:58:42
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/3/28 17:01:12
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/3/24 5:55:47
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/3/27 10:28:22
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/3/26 23:04:51
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/3/26 11:20:25
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/3/24 20:11:18
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/3/28 9:10:53
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/3/24 20:11:16
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/3/24 20:11:15
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/3/27 7:12:50
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/3/24 20:11:13
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/3/26 11:21:23
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/3/28 18:26:34
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/3/28 12:42:28
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/3/28 20:09:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57