7. MySQL 视图、索引

文章目录

  • 【 1. 视图 View 】
    • 1.1 视图原理
    • 1.2 创建视图 CREATE VIEW
      • 1.2.1 创建基于单表的视图
      • 1.2.2 创建基于多表的视图
    • 1.3 查看视图
      • 1.3.1 查看视图的内容
      • 1.3.2 查看视图的详细信息
    • 1.4 修改视图 ALTER VIEW
      • 1.4.1 修改视图内容
      • 1.4.2 修改视图名称
    • 1.5 删除视图 DORP VIEW
  • 【 2. 索引 Index 】
    • 2.1 索引原理
    • 2.2 创建索引
      • 2.2.1 CREATE INDEX 直接创建索引
      • 2.2.2 CREATE TABLE 在创建表时创建索引
      • 2.2.3 ALTER TABLE 在修改表时创建索引
      • 实例:创建表时创建普通索引
      • 实例:创建表时创建唯一索引
    • 2.3 查看索引 SHOW INDEX
    • 2.4 修改索引
    • 2.5 删除索引
      • 2.5.1 DROP INDEX 删除索引
      • 2.5.2 ALTER TABLE 删除索引

【 1. 视图 View 】

1.1 视图原理

  • 视图(View) 是一种虚拟存在的表的显示形式,在数据库中的作用类似于窗户,用户可以通过这个窗口看到只对自己有用的数据,那些 对用户没用或者用户没有权限了解的信息,都可以直接屏蔽掉,作用类似于筛选。这样做既使应用简单化,提高了查询效率,也保证了系统和数据的安全。
  • 视图、数据、真实表的关系
    • 数据库中只存放了视图的定义,视图不包含数据 ,同真实表一样,视图也由列和行构成,视图上呈现的数据都存放在定义视图查询所引用的真实表中,每次使用视图时,都必须执行查询中所需的任何一个检索操作,数据库会从真实表中取出对应的数据 。如果用多个连接和过滤条件创建了复杂的视图或嵌套了视图,可能会发现系统运行性能下降得十分严重。因此,在部署大量视图应用时,应该进行系统测试。
      视图中的数据是依赖于真实表中的数据的,一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。
    • 使用视图的用户不接触数据表,不知道表结构
    • 视图的建立和删除只影响视图本身,不影响对应的基本表
    • 视图与表在本质上虽然不相同,但 视图经过定义以后,结构形式和表一样,可以进行查询、修改、更新和删除等操作
  • 例如,有两张表:公司的部门表(包括部门号、部门名称、功能和办公地址)和员工表(包括员工的工作号、部门号、姓名、性别、出生日期和家庭住址)。由于各部门领导的权力范围不同,因此,各部门的领导只能看到各自部门的员工信息;而且,领导可能不关心员工的生日和家庭住址,为了达到这个目的,可以为各部门的领导建立一个视图,通过该视图,领导只能看到本部门员工的指定信息。
  • 在此之上举例,我们可以为生产部门建立一个名为 product view 的视图,通过视图 product view,生产部门的领导只能看到生产部门员工的工作号、姓名和性别等信息。这些 部门表的信息和员工表的信息依然存在于各自的表中,而视图 product_view 中不保存任何数据信息,当部门表和员工表的信息发生改变时,视图 product_view 显示的信息也会发生相应的变化。
  • 使用视图的时候,还应该注意以下几点:
    • 创建 视图需要足够的访问权限
    • 视图可以从多个表中获取指定字段的数据。
    • 创建视图的数目没有限制。
    • 视图可以嵌套,即从其他视图中检索数据的查询来创建视图。
    • 视图不能索引,也不能有关联的触发器、默认值或规则。
    • 视图可以和表一起使用。
    • MySQL 的视图不支持输入参数的功能,因此交互性上还有欠缺。但对于变化不是很大的操作,使用视图可以很大程度上简化用户的操作。
视图的优点具体描述
定制用户数据,聚焦特定的数据在实际的应用过程中,不同的用户可能对不同的数据有不同的要求。
例如,当数据库同时存在时,如学生基本信息表、课程表和教师信息表等多种表同时存在时,可以根据需求让不同的用户使用各自的数据。学生查看修改自己基本信息的视图,安排课程人员查看修改课程表和教师信息的视图,教师查看学生信息和课程信息表的视图。
简化数据操作在使用查询时,很多时候要使用聚合函数,同时还要显示其他字段的信息,可能还需要关联到其他表,语句可能会很长,如果这个动作频繁发生的话,可以创建视图来简化操作。
提高数据的安全性视图是虚拟的,物理上是不存在的。可以只授予用户视图的权限,而不具体指定使用表的权限,来保护基础数据的安全。
共享所需数据通过使用视图,每个用户不必都定义和存储自己所需的数据,可以共享数据库中的数据,同样的数据只需要存储一次。
更改数据格式通过使用视图,可以重新格式化检索出的数据,并组织输出到其他应用程序中。
重用 SQL 语句视图提供的是对查询操作的封装,本身不包含数据,所呈现的数据是根据视图定义从基础表中检索出来的,如果基础表的数据新增或删除,视图呈现的也是更新后的数据。视图定义后,编写完所需的查询,可以方便地重用该视图。

1.2 创建视图 CREATE VIEW

  • 创建视图是指 在已经存在的 MySQL 数据库表上建立视图,视图可以建立在一张表中,也可以建立在多张表中。
  • 基本语法
    • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
    • <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。对于创建视图中的 SELECT 语句的指定存在以下限制:
      • 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和其他视图的相关权限。
      • SELECT 语句不能引用系统或用户变量。
      • SELECT 语句不能包含 FROM 子句中的子查询。
      • SELECT 语句不能引用预处理语句参数。
CREATE VIEW <视图名> AS <SELECT语句>
  • 视图定义中引用的表或视图必须存在。但是,创建完视图后,可以删除定义引用的表或视图。可使用 CHECK TABLE 语句检查视图定义是否存在这类问题。
  • 视图定义中允许使用 ORDER BY 语句,但是若从特定视图进行选择,而该视图使用了自己的 ORDER BY 语句,则视图定义中的 ORDER BY 将被忽略。 ORDER BY 子句可以用在视图中,但若该视图检索数据的 SELECT 语句中也含有 ORDER BY 子句,则该视图中的 ORDER BY 子句将被覆盖。
  • 视图定义中 不能引用 TEMPORARY 表(临时表),不能创建 TEMPORARY 视图。
  • WITH CHECK OPTION 的意思是,修改视图时,检查插入的数据是否符合 WHERE 设置的条件。

1.2.1 创建基于单表的视图

  • 实例1
    1. 在 tb_student_info 表上创建一个名为 view_students_info 的视图
      CREATE VIEW view_student_info AS SELECT * FROM tb_student_info;
    2. 查看视图 view_student_info。
      SELECT * FROM view_student_info;
      在这里插入图片描述
  • 实例2
    1. 在 tb_student_info 表上创建一个名为 v_student_info 的视图。
      CREATE VIEW v_student_info
      (s_id,s_name,s_age,s_sex,s_height)
      AS SELECT id,name,age,sex,height
      FROM tb_student_info;
    2. 查看视图 view_student_info 。
      可以看到,实例1的view_student_info 和实例2的 v_student_info 两个视图中的字段名称不同,但是数据却相同。因此,在使用视图时,可能用户不需要了解基本表的结构,更接触不到实际表中的数据,从而保证了数据库的安全。
      SELECT * FROM v_student_info;
      在这里插入图片描述

1.2.2 创建基于多表的视图

  • 实例
    在表 tb_student_info 和表 tb_department 上创建视图 v_students_info。
    1. 先创建 tb_department 数据表

1.3 查看视图

  • 视图内容和属性的查看和数据表一样,这里给出数据表的查看方式链接:查看数据表 。
  • 视图用于查询主要应用在以下几个方面:
    使用视图重新格式化检索出的数据。
    使用视图简化复杂的表连接。
    使用视图过滤数据。

1.3.1 查看视图的内容

  • 实例1
    SELECT *FROM v_student_info;
    在这里插入图片描述

1.3.2 查看视图的详细信息

  • 实例1
    DESCRIBE v_student_info;
    在这里插入图片描述
  • 实例2
    SHOW CREATE VIEW v_student_info \G
    在这里插入图片描述

1.4 修改视图 ALTER VIEW

  • 修改视图是指修改 MySQL 数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性。
  • 基本语法
    • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
    • <SELECT 语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。
    • 对于 ALTER VIEW 语句的使用,需要用户具有针对视图的 CREATE VIEW 和 DROP 权限,以及由 SELECT 语句选择的每一列上的某些权限。
ALTER VIEW <视图名> AS <SELECT语句>

1.4.1 修改视图内容

  • 视图是一个虚拟表,实际的数据来自于基本表,所以通过插入、修改和删除操作更新视图中的数据,实质上是在更新视图所引用的基本表的数据,即:对视图的修改就是对基本表的修改 ,因此在修改时,要满足基本表的数据定义。
  • 对于可更新的视图,视图中的行和基本表的行之间必须具有一对一的关系
  • 如果视图包含以下结构中的任何一种,它就是 不可更新 的:
    • 聚合函数 SUM()、MIN()、MAX()、COUNT() 等。
    • DISTINCT 关键字。
    • GROUP BY 子句。
    • HAVING 子句。
    • UNION 或 UNION ALL 运算符。
    • 位于选择列表中的子查询。
    • FROM 子句中的不可更新视图或包含多个表。
    • WHERE 子句中的子查询,引用 FROM 子句中的表。
    • ALGORITHM 选项为 TEMPTABLE(使用临时表总会使视图成为不可更新的)的时候。
  • 实例1:ALTER 语句重构视图。
    使用 ALTER 语句修改视图 view_student_info。
    ALTER VIEW view_student_info
    AS SELECT id,name,age
    FROM tb_student_info;
    在这里插入图片描述
  • 实例2: UPDATE 语句更新视图。
    使用 UPDATE 语句更新视图 view_student_info。
    UPDATE view_student_info SET age=20 WHERE id=1;
    在这里插入图片描述

1.4.2 修改视图名称

  • 修改视图的名称可以先将视图删除,然后按照相同的定义语句进行视图的创建,并命名为新的视图名称。

1.5 删除视图 DORP VIEW

  • 删除视图是指删除 MySQL 数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据
    基本语法
    • <视图名>指定要删除的视图名。
    • DROP VIEW 语句可以一次删除多个视图,但是必须在每个视图上拥有 DROP 权限。
DROP VIEW <视图名1> [ , <视图名2>]
  • 实例
    1. 删除 v_student_info 视图。
      DROP VIEW IF EXISTS v_student_info;
    2. 再次查看 v_student_info 视图,提示不存在。
      SHOW CREATE VIEW v_student_info;
      在这里插入图片描述

【 2. 索引 Index 】

2.1 索引原理

  • 问题背景

    • 传统的 顺序访问 是在表中实行全表扫描,从头到尾逐行遍历,直到在无序的行数据中找到符合条件的目标数据。顺序访问实现比较简单,但是当表中有大量数据的时候,效率非常低下
      例如,在几千万条数据中查找少量的数据时,使用顺序访问方式将会遍历所有的数据,花费大量的时间,显然会影响数据库的处理性能。
    • 索引访问 是通过遍历索引来直接访问表中记录行的方式:使用这种方式的前提是在数据表的列上创建索引(索引存储了指定列数据值的指针,根据指定的排序顺序对这些指针排序),查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。
      例如,在学生基本信息表 tb_students 中,如果基于 student_id 建立了索引,系统就建立了一张索引列到实际记录的映射表,当用户需要查找 student_id 为 12022 的数据的时候,系统 先在 student_id 索引上找到该记录,然后通过映射表直接找到数据行,并且返回该行数据。因为扫描索引的 速度快,一般远远大于扫描实际数据行的速度,所以采用索引的方式可以大大提高数据库的工作效率。
  • 索引(Index) 是一种特殊的数据库结构,由数据表中的一列或多列组合而成(索引是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表 )。可以 通过索引列快速查询数据表中有某一特定值的记录。如果在表中查询的列有一个索引,MySQL 能快速到达索引列的位置去搜寻数据,而不必查看所有数据;否则,数据库系统将读取每条记录的所有信息进行匹配。因此,使用索引可以很大程度上提高数据库的查询速度,有效的提高数据库系统的性能。

可以把索引比作新华字典的音序表。例如,要查“库”字,如果不使用音序,就需要从字典的 400 页中逐页来找。但是,如果提取拼音出来,构成音序表,就只需要从 10 多页的音序表中直接查找。这样就可以大大节省时间。

  • 索引的优缺点
优点缺点
1. 通过创建唯一索引可以保证数据库表中每一行数据的唯一性。
2. 可以给所有的 MySQL 列类型设置索引。
3. 可以大大加快数据的查询速度,这是使用索引最主要的原因。
4. 在实现数据的参考完整性方面可以加速表与表之间的连接。
5. 在使用分组和排序子句进行数据查询时也可以显著减少查询中分组和排序的时间
1. 创建和维护索引组要耗费时间,并且随着数据量的增加所耗费的时间也会增加。
2. 索引需要占磁盘空间,除了数据表占数据空间以外,每一个索引还要占一定的物理空间。如果有大量的索引,索引文件可能比数据文件更快达到最大文件尺寸。
3. 当对表中的数据进行增加、删除和修改的时候,索引也要动态维护,这样就 降低了数据的维护速度
4. 索引可以提高查询速度,但是会影响插入记录的速度。 因为,向有索引的表中插入记录时,数据库系统会按照索引进行排序,这样就降低了插入记录的速度,插入大量记录时的速度影响会更加明显。这种情况下,最好的办法是先删除表中的索引,然后插入数据,插入完成后,再创建索引。

2.2 创建索引

  • 创建索引是指在某个表的一列或多列上建立一个索引,可以提高对表的访问速度。

2.2.1 CREATE INDEX 直接创建索引

  • 使用专门用于创建索引的 CREATE INDEX 语句,在一个已有的表上创建索引,但该语句不能创建主键
    基本语法
    • <索引名>:指定索引名。一个表可以创建多个索引,但每个索引在该表中的名称是唯一的
    • <表名>:指定要创建索引的表名。
    • <列名>:指定要创建索引的列名。通常可以考虑将查询语句中在 JOIN 子句和 WHERE 子句里经常出现的列作为索引列。
    • <长度>:可选项。指定使用列前的 length 个字符来创建索引。使用列的一部分创建索引有利于减小索引文件的大小,节省索引列所占的空间。在某些情况下,只能对列的前缀进行索引。索引列的长度有一个最大上限 255 个字节(MyISAM 和 InnoDB 表的最大上限为 1000 个字节),如果索引列的长度超过了这个上限,就只能用列的前缀进行索引。另外,BLOB 或 TEXT 类型的列也必须使用前缀索引。
    • ASC|DESC:可选项。ASC指定索引按照升序来排列,DESC指定索引按照降序来排列,默认为ASC。
CREATE <索引名> ON <表名> (<列名> [<长度>] [ ASC | DESC])

2.2.2 CREATE TABLE 在创建表时创建索引

  • 可以在创建表(CREATE TABLE)的同时创建索引。
作用基本语法
CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的 主键CONSTRAINT PRIMARY KEY [索引类型] (<列名>,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的 外键FOREIGN KEY <索引名> <列名>
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的 索引KEY | INDEX [<索引名>] [<索引类型>] (<列名>,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的 唯一性索引UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

2.2.3 ALTER TABLE 在修改表时创建索引

  • CREATE INDEX 语句可以在一个已有的表上创建索引,ALTER TABLE 语句也可以 在一个已有的表上创建索引。在使用 ALTER TABLE 语句修改表的同时,可以在 ALTER TABLE 语句中添加以下语法成分的某一项或几项,向已有的表添加索引。
作用基本语法
在 ALTER TABLE 语句中添加此语法成分,表示 在修改表的同时为该表添加索引ADD INDEX [<索引名>] [<索引类型>] (<列名>,…)
在 ALTER TABLE 语句中添加此语法成分,表示 在修改表的同时为该表添加主键ADD PRIMARY KEY [<索引类型>] (<列名>,…)
在 ALTER TABLE 语句中添加此语法成分,表示 在修改表的同时为该表添加外键ADD FOREIGN KEY [<索引名>] (<列名>,…)
在 ALTER TABLE 语句中添加此语法成分,表示 在修改表的同时为该表添加唯一性索引ADD UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

实例:创建表时创建普通索引

  1. 创建一个表 tb_stu_info,在该表的 height 字段创建普通索引。
    CREATE TABLE tb_stu_info
    (
    id INT NOT NULL,
    name CHAR(45) DEFAULT NULL,
    dept_id INT DEFAULT NULL,
    age INT DEFAULT NULL,
    height INT DEFAULT NULL,
    INDEX(height)
    );
  2. 显示这个表的详细属性。
    可以看到 height 字段 有 KEY 索引。
    SHOW CREATE TABLE tb_stu_info\G
    在这里插入图片描述

实例:创建表时创建唯一索引

  1. 创建一个表 tb_stu_info2,在该表的 id 字段上使用 UNIQUE 关键字创建唯一索引。
    CREATE TABLE tb_stu_info2
    (
    id INT NOT NULL,
    name CHAR(45) DEFAULT NULL,
    dept_id INT DEFAULT NULL,
    age INT DEFAULT NULL,
    height INT DEFAULT NULL,
    UNIQUE INDEX(height)
    );
  2. 显示这个表的详细属性。
    可以看到 id 字段 有 UNIQUE KEY 索引。
    SHOW CREATE TABLE tb_stu_info2\G
    在这里插入图片描述

2.3 查看索引 SHOW INDEX

  • 基本语法
    • <表名>:指定需要查看索引的数据表名。
    • <数据库名>:指定需要查看索引的数据表所在的数据库,可省略。
      比如,SHOW INDEX FROM student FROM test; 语句表示查看 test 数据库中 student 数据表的索引。
SHOW INDEX FROM <表名> [ FROM <数据库名>]
  • 实例
    查看 tb_stu_info2 数据表的索引信息。
    SHOW INDEX FROM tb_stu_info2\G
    在这里插入图片描述
  • 其中各主要参数说明如下:
参数说明
Table表示创建索引的数据表名,这里是 tb_stu_info2 数据表。
Non_unique表示该索引 是否是唯一索引。若不是唯一索引,则该列的值为 1;若是唯一索引,则该列的值为 0。
Key_name表示索引的名称。
Seq_in_index表示该列在索引中的位置,如果索引是单列的,则该列的值为 1;如果索引是组合索引,则该列的值为每列在索引定义中的顺序。
Column_name表示定义索引的列字段。
Collation表示列以何种顺序存储在索引中。在 MySQL 中,升序显示值“A”(升序),若显示为 NULL,则表示无分类。
Cardinality索引中唯一值数目的估计值。基数根据被存储为整数的统计数据计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL 使用该索引的机会就越大。
Sub_part表示列中被编入索引的字符的数量。若列只是部分被编入索引,则该列的值为被编入索引的字符的数目;若整列被编入索引,则该列的值为 NULL。
Packed指示关键字如何被压缩。若没有被压缩,值为 NULL。
Null用于显示索引列中是否包含 NULL。若列含有 NULL,该列的值为 YES。若没有,则该列的值为 NO。
Index_type显示索引使用的类型和方法(BTREE、FULLTEXT、HASH、RTREE)。
Comment显示评注。

2.4 修改索引

  • 在 MySQL 中修改索引可以通过删除原索引,再根据需要创建一个同名的索引,从而实现修改索引的操作。

2.5 删除索引

  • 不用的索引建议进行删除,因为它们会降低表的更新速度,影响数据库的性能。对于这样的索引,应该将其删除。
  • 如果删除的列是索引的组成部分,那么在删除该列时,也会将该列从索引中删除;
    如果组成索引的所有列都被删除,那么整个索引将被删除。

2.5.1 DROP INDEX 删除索引

  • 基本语法
    • <索引名>:要删除的索引名。
    • <表名>:指定该索引所在的表名。
DROP INDEX <索引名> ON <表名>
  • 实例
    1. 删除表 tb_stu_info 中的索引。
      DROP INDEX height ON tb_stu_info;
    2. 查看表 tb_stu_info 的详细属性。
      SHOW CREATE TABLE tb_stu_info\G
      在这里插入图片描述

2.5.2 ALTER TABLE 删除索引

  • ALTER TABLE 语句也可以用于删除索引,具体使用方法是将 ALTER TABLE 语句的语法中部分指定为以下子句中的某一项。
    • DROP PRIMARY KEY:表示删除表中的主键。一个表只有一个主键,主键也是一个索引。
    • DROP INDEX index_name:表示删除名称为 index_name 的索引。
    • DROP FOREIGN KEY fk_symbol:表示删除外键。
  • 实例
    1. 删除表 tb_stu_info2 中名称为 height 的索引。
      ALTER TABLE tb_stu_info2 DROP INDEX height;
    2. 查看表 tb_stu_info 的详细属性。
      SHOW CREATE TABLE tb_stu_info2\G
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21237.shtml

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

相关文章

961题库 北航计算机 计算机网络 附答案 选择题形式

有题目和答案&#xff0c;没有解析&#xff0c;不懂的题问大模型即可&#xff0c;无偿分享。 第1组 习题 OSI 参考模型的第 5 层( 自下而上 ) 完成的主要功能是 A. 差错控制 B. 路由选择 C. 会话管理 D. 数据表示转换 100BaseT 快速以太网使用的导向传输介质是 A. 双绞线 B. …

Gin的快速入门和搭建

文章目录 Go的工程工程架构技术选型 Gin入门 Go的工程 基于Go生态&#xff0c;构建一个支持内容管理&#xff0c;内容加工、内容分发的内容库系统。 内容管理&#xff1a;增删改查内容加工&#xff1a;例如内容审核、推荐等内容分发&#xff1a;将内容可以推到不同的业务线 …

linux进阶的一些操作以及知识点------习题集(实践)

请创建以你姓名全拼的用户luwenhua&#xff0c;将其设置为免密登录&#xff0c;切换到luwenhua用户&#xff0c;打开终端&#xff0c;完成以下操作 &#xff08;一&#xff09;bash脚本基础练习 1&#xff09;第一题&#xff1a;请在终端里定义两个用户变量num120&#xff0c…

C# try catch异常捕获

异常捕获 执行过程&#xff1a;try中的代码没有出现异常&#xff0c;则catch里面不会自行&#xff0c;如果try中代码出现异常&#xff0c;则后面的代码都不执行&#xff0c;直接跳到catch中的代码执行。 // try catch 可以捕获多个错误&#xff0c; try...catch...catch.... …

C++一个StringBad类

设计一个字符串类,下面的代码是一个不好的设计,起名StringBad。 //stringbad.h #pragma once //一个设计有问题的string类 #include <iostream> using namespace std;class StringBad { public:StringBad();//默认构造函数StringBad(const char* s);//构造函数~StringBa…

计算机毕业设计 | springboot+vue会议室管理系统(附源码)

1&#xff0c;绪论 1.1 项目背景 随着企业规模的不断扩大&#xff0c;会议室管理愈加复杂。传统的手工预约会议室的方式已经无法满足现代企业的需求&#xff0c;因此&#xff0c;开发一套会议室系统方案变得尤为重要。会议室系统可以实现会议室的在线预约、会议室资源的有效利…

【TB作品】MSP430 G2553 单片机口袋板,电风扇模拟控制系统设计

功能 电风扇模拟控制系统设计 基本要求: 用LED/LCD 显示电风扇的工作状态 (1,2,3,4 四档风力), 显示风类:“自然风”、“常风”和“睡眠风”。 设计 “自然风”“常风”和“睡眠风” 三个风类键用于设置风类 设计一个“摇头”键用于控制电机摇头。 设计一个“定时”键&#x…

慢SQL的治理思路

慢SQL的治理思路 什么是慢SQL慢SQL产生的原因查看慢 SQL 是否开启开启慢 SQL 记录开启慢查询日志分析慢 SQL解决和优化慢SQL的方法 什么是慢SQL 慢 SQL 指的是 MySQL 中执行比较慢的 SQL&#xff0c;排查慢 SQL 最常用的方法是通过慢查询日志来查找慢 SQL。 MySQL 的慢查询日志…

快速排序与归并排序(非递归)

目录 快速排序&#xff08;双指针法&#xff09; 原理 代码 快速排序&#xff08;非递归&#xff09; 原理 代码 归并排序 介绍 优点 缺点 图片 原理 代码 归并排序&#xff08;非递归&#xff09; 代码 快速排序&#xff08;双指针法&#xff09; 快速排序的精…

2024年06月编程语言流行度排名

点击查看最新编程语言流行度排名&#xff08;每月更新&#xff09; 2024年06月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多&#xff0c;大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…

【30天精通Prometheus:一站式监控实战指南】第15天:ipmi_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

(奇幻森林)POLYGON - Enchanted Forest - Nature Biomes - 3D Environment Art by Synty

各种雄伟的树木,装饰着优雅简化的树叶,在头顶形成了一个天堂般的树冠,在苔藓覆盖的森林地面上投下了宁静的咒语。 每一项资产,从引人入胜的环境材料到平缓的波浪状山丘,都经过精心制作,将您带到魔法和自然融合的地方。POLYGON-魔法森林-自然生物技术为数字领域注入真正魔…

60 关于 SegmentFault 的一些场景 (2)

前言 呵呵 此问题主要是来自于 帖子 月经结贴 -- 《Segmentation Fault in Linux》 这里主要也是 结合了作者的相关 case, 来做的一些 调试分享 当然 很多的情况还是 蛮有意思 本文主要问题如下 1. 访问异常堆栈地址1 2. 访问异常堆栈地址2 3. 访问异常堆栈地址3 4. sta…

第三届大湾区算力大会丨暴雨开启数字未来新篇

5月30-31日&#xff0c;韶关市迎来主题为“算启新篇智创未来”的第三届粤港澳大湾区(广东)算力产业大会暨第二届中国算力网大会&#xff0c;活动由广东省人民政府主办&#xff0c;广东省政数局、韶关市人民政府共同承办。暴雨信息作为算力产业发展的重要构建者受邀赴会&#xf…

Java的数据库编程-----JDBC

目录 一.JDBC概念&使用条件&#xff1a; 二.mysql-connector驱动包的下载与导入&#xff1a; 三.JDBC编程&#xff1a; 使用JDBC编程的主要五个步骤&#xff1a; 完整流程1&#xff08;更新update&#xff09;&#xff1a; 完整流程2(查询query)&#xff1a; 一.JDB…

汪小菲直播翻车亲儿子直言麻六记有异味网友热议引爆话题

汪小菲直播翻车&#xff01;亲儿子直言“麻六记”有“异味”&#xff0c;网友热议引爆话题在星光璀璨的娱乐圈&#xff0c;汪小菲一直以家庭幸福、事业有成的形象示人。然而&#xff0c;近日的一场直播让他遭遇了前所未有的尴尬。在直播中&#xff0c;汪小菲兴致勃勃地向观众跨…

视频搬运的素材网站有哪些?打包好的视频素材在哪找?

短视频创作的朋友们&#xff0c;欢迎进入这个充满创意的世界&#xff01;如果你曾为找不到合适的素材而苦恼&#xff0c;那么今天就让我为你介绍几个能够快速丰富你视频内容的素材平台。无论是为了搬运视频还是寻找灵感&#xff0c;下面这些网站都将是你的强力助手。特别地&…

【软件测试】6.设计测试用例的设计方法

目录 1.基于需求的设计方法 2.具体的设计方法 2.1等价类 2.2边界值 2.3正交法 2.4判定表法 2.5场景法 2.6 错误猜测法 1.基于需求的设计方法 基于需求的设计方法也是总的设计测试用例的方法&#xff0c;在工作中&#xff0c;我们需要参考需求文档/产品规格说明书来设计…

MySQL—函数(介绍)—字符串函数(基础)

一、引言 提到函数&#xff0c;在SQL分类中DQL语句中有一个聚合函数&#xff0c;如COUNT()、SUM()、MAX()等等。这些都是一些常见的聚合函数&#xff0c;而聚合函数只是函数的一种&#xff0c;接下来会详细的学习和介绍一下函数的应用场景和以及 mysql 当中文件的函数有哪些。 …

(ISPRS,2023)RS-CLIP: 基于对比视觉-语言监督的zero-shot遥感场景分类

文章目录 相关资料摘要引言方法CLIP回顾伪标签生成课程学习策略 实验数据集不同文本提示失败案例分析课程学习zero-shot分类 相关资料 论文&#xff1a;RS-CLIP: Zero shot remote sensing scene classification via contrastive vision-language supervision 摘要 零样本遥…