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

MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)

文章目录

  • MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)
    • 会话临时表空间
      • 会话临时表空间的磁盘分配和回收
      • 会话临时表空间的创建
      • 创建临时表和查看临时表信息
      • 会话临时表空间相关的设置参数
        • innodb_temp_tablespaces_dir
    • 全局临时表空间
      • 查看全局临时表空间的信息
      • 全局临时表空间相关的设置参数
        • innodb_temp_data_file_path
    • 参考

【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
编辑|SQL和数据库技术(ID:SQLplusDB)

MySQL 8.0 OCP (1Z0-908) 考点概要

MySQL 8.0 OCP (1Z0-908) 考点精析-安装与配置考点1:设置系统变量
【MySQL】控制MySQL优化器行为方法之optimizer_switch系统变量
【MySQL】MySQL系统变量(system variables)列表(mysqld --verbose --help的结果例)
【MySQL】MySQL系统变量(system variables)列表(SHOW VARIABLES 的结果例)
MySQL 8.0 OCP (1Z0-908) 考点精析-备份与恢复考点1:MySQL Enterprise Backup概要
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点2:系统变量的确认
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点3:EXPLAIN ANALYZE
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点4:慢速查询日志(slow query log)
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点5:表连接算法(join algorithm)
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6:MySQL Enterprise Monitor之Query Analyzer
MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点1:二进制日志文件(Binary log)
MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点5:数据字典(Data Dictionary)
MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点6:InnoDB Tablespaces之系统表空间(System Tablespace)
MySQL 8.0 InnoDB Tablespaces之File-per-table tablespaces(单独表空间)
MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)
【MySQL】在数据目录之外创建InnoDB 表(Creating Tables Externally)

MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)

InnoDB表空间是MySQL中用于存储InnoDB存储引擎表数据和索引的物理文件。
InnoDB Architecture
InnoDB表空间根据用途可以分成多种类型:

  • 数据表空间:
    • System tablespace(系统表空间)
    • File-per-table tablespaces(单独表空间)
    • General tablespaces(通用表空间/一般表空间)
  • Undo 表空间
  • 临时表空间(Temporary table tablespaces)

其中,MySQL(InnoDB引擎)的临时表空间可以分为两类:

  • 会话临时表空间:用于存储用户创建的临时表和由优化器创建的内部临时表
  • 全局临时表空间:用于存储对用户创建的临时表所做更改的回滚段(rollback segments/undo logs)。

会话临时表空间

会话临时表空间用于存储用户创建的临时表和由优化器创建的内部临时表。

会话临时表空间的磁盘分配和回收

  • 当一个会话首次请求创建磁盘上的临时表时,服务器会从临时表空间池中分配临时表空间给会话,分配给会话的临时表空间将用于会话创建的所有磁盘上的临时表。
  • 当会话断开连接时,其临时表空间被截断并释放回池中。
  • 一个会话最多分配两个临时表空间,一个用于用户创建的临时表,另一个用于优化器创建的内部临时表。

会话临时表空间的创建

  • 服务器启动时将创建了一个包含10个临时表空间的池。
  • 池的大小永远不会缩小,表空间会根据需要自动添加到池中。
  • 当服务器正常关闭或初始化中止时,临时表空间池将被移除。
  • 会话临时表空间文件在创建时为5个页面大小,并具有.ibt文件扩展名。

例:默认分配的10个会话临时表空间

mysql> select * from information_schema.INNODB_SESSION_TEMP_TABLESPACES\g
+----+------------+----------------------------+-------+----------+-----------+
| ID | SPACE      | PATH                       | SIZE  | STATE    | PURPOSE   |
+----+------------+----------------------------+-------+----------+-----------+
| 18 | 4243767290 | ./#innodb_temp/temp_10.ibt | 81920 | ACTIVE   | INTRINSIC |
|  0 | 4243767281 | ./#innodb_temp/temp_1.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767282 | ./#innodb_temp/temp_2.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767283 | ./#innodb_temp/temp_3.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767284 | ./#innodb_temp/temp_4.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767285 | ./#innodb_temp/temp_5.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767286 | ./#innodb_temp/temp_6.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767287 | ./#innodb_temp/temp_7.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767288 | ./#innodb_temp/temp_8.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767289 | ./#innodb_temp/temp_9.ibt  | 81920 | INACTIVE | NONE      |
+----+------------+----------------------------+-------+----------+-----------+
10 rows in set (0.00 sec)

会话临时表空间数据文件信息:大小为80k的10个.ibt文件。

root@mysql-vm:/var/lib/mysql/#innodb_temp# pwd
/var/lib/mysql/#innodb_temp
root@mysql-vm:/var/lib/mysql/#innodb_temp# ls -larth
total 808K
drwxr-x---  2 mysql mysql 4.0K Dec 28 11:28 .
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_9.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_8.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_7.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_6.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_5.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_4.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_3.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_2.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_10.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_1.ibt
drwx------ 12 mysql mysql 4.0K Dec 29 14:53

※关于磁盘上内部临时表的存储引擎:

 - MySQL 旧版本中,用于磁盘上内部临时表的存储引擎由internal_tmp_disk_storage_engine的值确定(MYISAM/InnoDB),默认值为InnoDB。- MySQL 8.0.16版本开始,参数internal_tmp_disk_storage_engine被废止,用于磁盘上内部临时表的存储引擎固定为InnoDB。

创建临时表和查看临时表信息

用户可以通过 CREATE TEMPORARY TABLE语句创建临时表。
并且可以通过information_schema.INNODB_SESSION_TEMP_TABLESPACES查看临时表空间的元数据信息,通过INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO表查看创建的临时表的元数据信息。

例:

mysql> use testdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY);
Query OK, 0 rows affected (0.01 sec)mysql> select * from information_schema.INNODB_SESSION_TEMP_TABLESPACES\g
+----+------------+----------------------------+-------+----------+-----------+
| ID | SPACE      | PATH                       | SIZE  | STATE    | PURPOSE   |
+----+------------+----------------------------+-------+----------+-----------+
| 18 | 4243767290 | ./#innodb_temp/temp_10.ibt | 81920 | ACTIVE   | INTRINSIC |
| 18 | 4243767289 | ./#innodb_temp/temp_9.ibt  | 98304 | ACTIVE   | USER      |
| 19 | 4243767288 | ./#innodb_temp/temp_8.ibt  | 81920 | ACTIVE   | INTRINSIC |
|  0 | 4243767281 | ./#innodb_temp/temp_1.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767282 | ./#innodb_temp/temp_2.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767283 | ./#innodb_temp/temp_3.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767284 | ./#innodb_temp/temp_4.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767285 | ./#innodb_temp/temp_5.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767286 | ./#innodb_temp/temp_6.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767287 | ./#innodb_temp/temp_7.ibt  | 81920 | INACTIVE | NONE      |
+----+------------+----------------------------+-------+----------+-----------+
10 rows in set (0.00 sec)mysql>
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G
*************************** 1. row ***************************
TABLE_ID: 1438NAME: #sql3fec_12_11N_COLS: 4SPACE: 4243767289
1 row in set (0.00 sec)

数据文件

root@mysql-vm:/var/lib/mysql/#innodb_temp# ls -larth
total 828K
drwxr-x---  2 mysql mysql 4.0K Dec 28 11:28 .
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_8.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_7.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_6.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_5.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_4.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_3.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_2.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_10.ibt
-rw-r-----  1 mysql mysql  80K Dec 28 11:28 temp_1.ibt
drwx------ 12 mysql mysql 4.0K Dec 29 14:53 ..
-rw-r-----  1 mysql mysql  96K Dec 29 23:06 temp_9.ibt

临时表所在的临时表空间的数据文件temp_9.ibt会根据需要扩大。

※注:临时表只在当前会话中可见,并在会话关闭时临时表会被自动删除。

mysql> exit
Bye

例:会话关闭后,ID18的临时表空间变为INACTIVE 且临时表被自动删除。

mysql> select * from information_schema.INNODB_SESSION_TEMP_TABLESPACES\g
+----+------------+----------------------------+-------+----------+-----------+
| ID | SPACE      | PATH                       | SIZE  | STATE    | PURPOSE   |
+----+------------+----------------------------+-------+----------+-----------+
| 19 | 4243767288 | ./#innodb_temp/temp_8.ibt  | 81920 | ACTIVE   | INTRINSIC |
|  0 | 4243767281 | ./#innodb_temp/temp_1.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767282 | ./#innodb_temp/temp_2.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767283 | ./#innodb_temp/temp_3.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767284 | ./#innodb_temp/temp_4.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767285 | ./#innodb_temp/temp_5.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767286 | ./#innodb_temp/temp_6.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767287 | ./#innodb_temp/temp_7.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767289 | ./#innodb_temp/temp_9.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4243767290 | ./#innodb_temp/temp_10.ibt | 81920 | INACTIVE | NONE      |
+----+------------+----------------------------+-------+----------+-----------+
10 rows in set (0.00 sec)mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G
Empty set (0.00 sec)

会话临时表空间相关的设置参数

innodb_temp_tablespaces_dir

innodb_temp_tablespaces_dir变量用于定义会话临时表空间创建的位置。

Command-Line Format–innodb-temp-tablespaces-dir=dir_name
Introduced8.0.13
System Variableinnodb_temp_tablespaces_dir
ScopeGlobal
DynamicNo
SET_VAR Hint AppliesNo
TypeDirectory name
Default Value#innodb_temp

例:

mysql> show variables like 'innodb_temp_tablespaces_dir';
+-----------------------------+-----------------+
| Variable_name               | Value           |
+-----------------------------+-----------------+
| innodb_temp_tablespaces_dir | ./#innodb_temp/ |
+-----------------------------+-----------------+
1 row in set (0.00 sec)
mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.01 sec)

默认位置是数据目录中的#innodb_temp目录。

root@mysql-vm:/var/lib/mysql/#innodb_temp# pwd
/var/lib/mysql/#innodb_temp
root@mysql-vm:/var/lib/mysql/#innodb_temp# ls
temp_1.ibt  temp_10.ibt  temp_2.ibt  temp_3.ibt  temp_4.ibt  temp_5.ibt  temp_6.ibt  temp_7.ibt  temp_8.ibt  temp_9.ibt
root@mysql-vm:/var/lib/mysql/#innodb_temp#

全局临时表空间

全局临时表空间用于存储对用户创建的临时表所做更改的回滚段(rollback segments/undo logs)。

  • 全局临时表空间在正常关闭或初始化中止时被移除,并在每次服务器启动时重新创建。
  • 全局临时表空间在创建时接收一个动态生成的空间ID。
  • 如果无法创建全局临时表空间,服务器将拒绝启动。如果服务器意外停止,全局临时表空间不会被移除。
  • 重新启动MySQL服务器会自动移除并重新创建全局临时表空间,回收全局临时表空间数据文件占用的磁盘空间。

查看全局临时表空间的信息

可以通过INFORMATION_SCHEMA.FILES查看有关全局临时表空间的元数据。

例:

mysql> SELECT * FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME='innodb_temporary'\G
*************************** 1. row ***************************FILE_ID: 4294967293FILE_NAME: ./ibtmp1FILE_TYPE: TEMPORARYTABLESPACE_NAME: innodb_temporaryTABLE_CATALOG:TABLE_SCHEMA: NULLTABLE_NAME: NULLLOGFILE_GROUP_NAME: NULL
LOGFILE_GROUP_NUMBER: NULLENGINE: InnoDBFULLTEXT_KEYS: NULLDELETED_ROWS: NULLUPDATE_COUNT: NULLFREE_EXTENTS: 2TOTAL_EXTENTS: 12EXTENT_SIZE: 1048576INITIAL_SIZE: 12582912MAXIMUM_SIZE: NULLAUTOEXTEND_SIZE: 67108864CREATION_TIME: NULLLAST_UPDATE_TIME: NULLLAST_ACCESS_TIME: NULLRECOVER_TIME: NULLTRANSACTION_COUNTER: NULLVERSION: NULLROW_FORMAT: NULLTABLE_ROWS: NULLAVG_ROW_LENGTH: NULLDATA_LENGTH: NULLMAX_DATA_LENGTH: NULLINDEX_LENGTH: NULLDATA_FREE: 6291456CREATE_TIME: NULLUPDATE_TIME: NULLCHECK_TIME: NULLCHECKSUM: NULLSTATUS: NORMALEXTRA: NULL
1 row in set (0.01 sec)mysql>
mysql> SELECT FILE_NAME, TABLESPACE_NAME, ENGINE, INITIAL_SIZE, TOTAL_EXTENTS*EXTENT_SIZE->        AS TotalSizeBytes, DATA_FREE, MAXIMUM_SIZE FROM INFORMATION_SCHEMA.FILES->        WHERE TABLESPACE_NAME = 'innodb_temporary'\G
*************************** 1. row ***************************FILE_NAME: ./ibtmp1
TABLESPACE_NAME: innodb_temporaryENGINE: InnoDBINITIAL_SIZE: 12582912TotalSizeBytes: 12582912DATA_FREE: 6291456MAXIMUM_SIZE: NULL
1 row in set (0.00 sec)mysql>

全局临时表空间数据文件:

root@mysql-vm:/var/lib/mysql# ls -lh ibtmp1
-rw-r----- 1 mysql mysql 12M Dec 28 11:28 ibtmp1
root@mysql-vm:/var/lib/mysql#

默认情况下,全局临时表空间数据文件是自动扩展的,并根据需要增加大小。

mysql>  show variables like '%innodb_temp_data_file_path%';
+----------------------------+-----------------------+
| Variable_name              | Value                 |
+----------------------------+-----------------------+
| innodb_temp_data_file_path | ibtmp1:12M:autoextend |
+----------------------------+-----------------------+
1 row in set (0.01 sec)

全局临时表空间相关的设置参数

innodb_temp_data_file_path

innodb_temp_data_file_path变量定义了全局临时表空间数据文件的相对路径、名称、大小和属性。
如果未为innodb_temp_data_file_path指定值,则默认行为是在innodb_data_home_dir目录中创建一个名为ibtmp1的单个自动扩展数据文件。初始文件大小略大于12MB。
另外,如果要修改innodb_temp_data_file_path参数 需要重启服务器。
例:

mysql>  show variables like '%innodb_temp_data_file_path%';
+----------------------------+-----------------------+
| Variable_name              | Value                 |
+----------------------------+-----------------------+
| innodb_temp_data_file_path | ibtmp1:12M:autoextend |
+----------------------------+-----------------------+
1 row in set (0.01 sec)mysql>

参考

15.6.3.5 Temporary T
ablespaces
https://dev.mysql.com/doc/refman/8.0/en/innodb-temporary-tablespace.html

15.15.7 InnoDB INFORMATION_SCHEMA Temporary Table Info Table
https://dev.mysql.com/doc/refman/8.0/en/innodb-information-schema-temp-table-info.html

13.1.20.2 CREATE TEMPORARY TABLE Statement
https://dev.mysql.com/doc/refman/8.0/en/create-temporary-table.html

Internal Temporary Table Storage Engine
https://dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html#internal-temporary-tables-engines

相关文章:

MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)

文章目录 MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)会话临时表空间会话临时表空间的磁盘分配和回收会话临时表空间的创建创建临时表和查看临时表信息会话临时表空间相关的设置参数innodb_temp_tablespaces_dir 全局临时表空间查…...

轴承滚珠故障的理论推导与计算(修订中...)

1.缘起 轴承故障故障位置在高频,如果不即时处理,恶化后,滚珠会有单颗故障迅速恶化到多颗,如果此时电机承载较大负载,轴承的恶化,会牵连到相关的动力轴。是一个不可不进行监测的项目。 2.频谱特征 轴承的…...

NVMe系统内存结构 - PRP与PRP List

NVMe系统内存结构 - PRP与PRP List 1 为什么需要PRP2 PRP3 PRP List4 PRP寻址算法4.1 仅PRP1指向数据4.2 PRP1指向数据,PRP2指向数据4.3 PRP1指向数据,PRP2指向PRP List 本文属于《 NVMe协议基础系列教程》之一,欢迎查看其它文章。 1 为什么…...

系列二、Spring Security中的核心类

一、Spring Security中的核心类 1.1、自动配置类 UserDetailsServiceAutoConfiguration 1.2、密码加密器 1.2.1、概述 Spring Security 提供了多种密码加密方案,官方推荐使用 BCryptPasswordEncoder,BCryptPasswordEncoder 使用 BCrypt 强哈希函数&a…...

基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpRequest 提取请求行、解析请求行和优化 以及解析请求头并存储

### 知识点1:读取网络数据 客户端发送给服务器的通信数据通过封装的bufferSocketRead函数读取读取的数据存储在struct Buffer结构体实例中,可将该实例作为参数传递给解析函数 回顾Buffer.c中的bufferSocketRead函数 // 写内存 2.接收套接字数据 int b…...

数据结构-测试1

一、判断题 1.队列中允许插入的一端叫队头,允许删除的一端叫队尾(F) 队列中允许删除的一端叫队头(front),允许插入的一端叫队尾(rear) 2. 完全二叉树中,若一个结点没有左孩子&#…...

【设计模式】01-前言

23 Design Patterns implemented by C. 从本文开始,一系列的文章将揭开设计模式的神秘面纱。本篇博文是参考了《设计模式-可复用面向对象软件的基础》这本书,由于该书的引言 写的太好了,所以本文基本是对原书的摘抄。 0.前言 评估一个面向对…...

SpringBoot源码分析

一:简介 由Pivotal团队提供的全新框架其设计目的是用来简化新Spring应用的初始搭建以及开发过程使用了特定的方式来进行配置快速应用开发领域 二:运行原理以及特点 运行原理: SpringBoot为我们做的自动配置,确实方便快捷&#…...

约数个数和约数之和算法总结

知识概览 约数个数 基于算数基本定理,假设N分解质因数的结果为 可得对于N的任何一个约数d,有 因为N的每一个约数和~的一种选法是一一对应的,根据乘法原理可得, 一个数的约数个数为 约数之和 一个数的约数之和公式为 多项式乘积的…...

数据结构-怀化学院期末题(322)

图的深度优先搜索 题目描述: 图的深度优先搜索类似于树的先根遍历,是树的先根遍历的推广。即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点…...

小手也能用的高性能鼠标,自定义空间还挺高,雷柏VT9Pro mini上手

今年搭载PAW3395传感器的电竞鼠标很受欢迎,雷柏就出了不少型号,满足各种喜好的玩家选择,像是近期新出的搭载3395高定版的VT9Pro和VT9Pro mini,就在轻量化的基础上,满足了各种手型的玩家的使用需要,而且价格…...

CDN加速原理详解

一、CDN加速是什么意思 CDN是Content Delivery Network)英文首字母的缩写,中文翻译为内容分发网络,由于CDN是为加快网络访问速度而被优化的网络覆盖层,因此被形象地称为”网络加速器”,即CDN加速。CDN加速是通过将网站…...

sqlachemy orm create or delete table

sqlacehmy one to one ------detial to descript 关于uselist的使用。如果你使用orm直接创建表关系,实际上在数据库中是可以创建成多对多的关系,如果加上uselistFalse 你会发现你的orm只能查询出来一个,如果不要这个参数orm查询的就是多个,一对多的…...

科普小米手机、华为手机、红米手机、oppo手机、vivo手机、荣耀手机、一加手机、realme手机如何设置充电提示音

用空空鱼就可以设置,上面还有很多提示音素材还可以设置满电和低电提醒...

zookeeper应用场景之分布式的ID生成器

1. 分布式ID生成器的使用场景 在分布式系统中,分布式ID生成器的使用场景非常之多: 大量的数据记录,需要分布式ID。大量的系统消息,需要分布式ID。大量的请求日志,如restful的操作记录,需要唯一标识&#x…...

Java--Spring项目生成雪花算法数字(Twitter SnowFlake)

文章目录 前言步骤查看结果 前言 分布式系统常需要全局唯一的数字作为id,且该id要求有序,twitter的SnowFlake解决了这种需求,生成了符合条件的这种数字,本文将提供一个接口获取雪花算法数字。以下为代码。 步骤 SnowFlakeUtils …...

紫光展锐M6780丨画质增强——更炫的视觉体验

智能显示被认为是推动数字化转型和创新的重要技术之一。研究机构数据显示,预计到2035年底,全球智能显示市场规模将达到1368.6亿美元,2023-2035年符合年增长率为36.4%。 随着消费者对高品质视觉体验的需求不断增加,智能手机、平板…...

控制el-table的列显示隐藏

控制el-table的列显示隐藏,一般的话可以通过循环来实现,但是假如业务及页面比较复杂的话,list数组循环并不好用。 在我们的页面中el-table-column是固定的,因为现在是对现有的进行维护和迭代更新。 对需要控制列显示隐藏的页面进…...

2024上海国际冶金及材料分析测试仪器设备展览会

2024上海国际冶金及材料分析测试仪器设备展览会 时间:2024年12月18~20日 地点:上海新国际博览中心 ◆ 》》》组织机构: 主办单位:全联冶金商会、中国宝武钢铁集团有限公司、上海市金属学会 支持单位&#xff…...

商业定位,1元平价商业咨询:豪威尔咨询!平价咨询。

在做生意之前,就需要对企业整体进行一完整的商业定位,才能让商业定位带动企业进行飞速发展。 所以,包含商业定位的有效工作内容就显得极为重要,今天,小编特地为大家整理出了商业定位所需要的筹备的工作,如下…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...