MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)

文章目录

  • MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)
    • General tablespaces(通用表空间/一般表空间)
      • 通用表空间的功能
      • 通用表空间的限制
    • 创建通用表空间(一般表空间)
      • 创建语法
      • 创建通用表空间
        • 例1:不指定数据文件路径
        • 例2: 省略add datafile语句
        • 例3:创建datadir路径外的表空间
          • innodb_directories变量参数
          • 例:创建datadir路径外的表空间
            • 修改innodb_directories变量参数
            • 创建datadir路径外的表空间
        • 例4:创建InnoDB通用表空间的限制
    • 通用表空间中的表
      • 例1:创建表指定通用表空间
      • 例2:修改表的表空间
        • 例2-1:修改到不同的通用表空间中
        • 例2-2:修改表从独立表空间或系统表空间到通用表空间
        • 例2-3:修改表从通用表空间或系统表空间到独立表空间
        • 例2-4:修改表从通用表空间或独立表空间到系统表空间
    • 参考

【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
编辑|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(通用表空间/一般表空间)

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

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

General tablespaces(通用表空间/一般表空间)

通用表空间具有如下功能和限制。

通用表空间的功能

通用表空间具有如下功能:

  • 使用CREATE TABLESPACE语法创建的共享InnoDB表空间(与Oracle的表空间很相似)。
  • 类似于系统表空间,通用表空间是共享表空间,可以存储多个表的数据。 与独立表空间相比,通用表空间具有潜在的内存优势。(通用表空间中多个表共享一个表空间,所以消耗更少的内存用于表空间元数据,独立表空间需要更多内存用于表空间元数据。)
  • 数据文件可以放置在与MySQL数据目录( MySQL data directory)相关或独立的目录中。
  • 通用表空间支持所有的表行格式和相关功能(REDUNDANT, COMPACT, DYNAMIC, COMPRESSED)。 CREATE
  • TABLE语句可以使用TABLESPACE选项在通用表空间、独立表空间或系统表空间中创建表。 ALTER
  • TABLE语句可以使用TABLESPACE选项在通用表空间、独立表空间或系统表空间之间移动表。
  • 创建通用表空间时候会生成相应的.ibd数据文件。 通用表空间不属于特定的数据库。

通用表空间的限制

通用表空间具有如下限制:

  • 无法将现有的表空间更改为通用表空间。
  • 不支持创建临时通用表空间。
  • 通用表空间不支持临时表。
  • 与系统表空间类似,truncate 或者drop通用表空间中的表,仅释放系统表空间中的空间,不会返回给操作系统。
  • 表复制的ALTER TABLE操作可能会增加表空间使用的空间量。
  • 不支持表分区(table partitions)放置在通用表空间中
  • 源和副本位于同一主机上的复制环境中,不支持使用ADD DATAFILE子句。
  • MySQL 8.0.21开始,由datadir、innodb_data_home_dir和innodb_directories变量定义的目录以外,无法在撤销表空间目录(innodb_undo_directory)中创建通用表空间。

创建通用表空间(一般表空间)

创建语法

通用表空间/一般表空间创建语法如下:

CREATE [UNDO] TABLESPACE tablespace_name

  InnoDB and NDB:
    [ADD DATAFILE 'file_name']
    [AUTOEXTEND_SIZE [=] value]

  InnoDB only:
    [FILE_BLOCK_SIZE = value]
    [ENCRYPTION [=] {'Y' | 'N'}]

  NDB only:
    USE LOGFILE GROUP logfile_group
    [EXTENT_SIZE [=] extent_size]
    [INITIAL_SIZE [=] initial_size]
    [MAX_SIZE [=] max_size]
    [NODEGROUP [=] nodegroup_id]
    [WAIT]
    [COMMENT [=] 'string']

  InnoDB and NDB:
    [ENGINE [=] engine_name]

  Reserved for future use:
    [ENGINE_ATTRIBUTE [=] 'string']

创建通用表空间

例1:不指定数据文件路径

可以不指定数据文件路径创建通用表空间,这时候数据文件会默认创建在datadir路径下。

创建表空间:

mysql> create tablespace test_tbs1 add datafile 'test_tbs1.ibd';
Query OK, 0 rows affected (0.01 sec)

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

mysql> select * from
    -> information_schema.innodb_tablespaces t
    -> join information_schema.innodb_datafiles d
    -> on t.SPACE=d.SPACE
    -> where t.NAME ='test_tbs1'\G
*************************** 1. row ***************************
          SPACE: 81
           NAME: test_tbs1
           FLAG: 18432
     ROW_FORMAT: Any
      PAGE_SIZE: 16384
  ZIP_PAGE_SIZE: 0
     SPACE_TYPE: General
  FS_BLOCK_SIZE: 4096
      FILE_SIZE: 114688
 ALLOCATED_SIZE: 114688
AUTOEXTEND_SIZE: 0
 SERVER_VERSION: 8.0.35
  SPACE_VERSION: 1
     ENCRYPTION: N
          STATE: normal
          SPACE: 0x3831
           PATH: test_tbs1.ibd
1 row in set (0.00 sec)

mysql>

查看数据文件:

root@mysql-vm:/var/lib/mysql# ls -l test_tbs*
-rw-r----- 1 mysql mysql 114688 Dec 20 20:32 test_tbs1.ibd
例2: 省略add datafile语句

MySQL 8.0.14版本之后,创建表空间时可以省略add datafile语句。这时MySQL会隐式创建具有唯一文件名的表空间数据文件。

  • 文件名是一个128位的UUID,格式为五组用破折号分隔的十六进制数字(aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee)。
  • 常规表空间数据文件包括一个.ibd文件扩展名。 在replication环境中,在源上创建的数据文件名与在复制副本上创建的文件名不同。

例:

mysql>  create tablespace test_tbs2;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from
    -> information_schema.innodb_tablespaces t
    -> join information_schema.innodb_datafiles d
    -> on t.SPACE=d.SPACE
    -> where t.NAME ='test_tbs2'\G
*************************** 1. row ***************************
          SPACE: 82
           NAME: test_tbs2
           FLAG: 18432
     ROW_FORMAT: Any
      PAGE_SIZE: 16384
  ZIP_PAGE_SIZE: 0
     SPACE_TYPE: General
  FS_BLOCK_SIZE: 4096
      FILE_SIZE: 114688
 ALLOCATED_SIZE: 114688
AUTOEXTEND_SIZE: 0
 SERVER_VERSION: 8.0.35
  SPACE_VERSION: 1
     ENCRYPTION: N
          STATE: normal
          SPACE: 0x3832
           PATH: af5bb7e2-9f34-11ee-8d33-525400b409f6.ibd
1 row in set (0.00 sec)

mysql>

查看数据文件:

root@mysql-vm:/var/lib/mysql# ls -l af5bb7e2-9f34-11ee-8d33-525400b409f6.ibd
-rw-r----- 1 mysql mysql 114688 Dec 20 20:38 af5bb7e2-9f34-11ee-8d33-525400b409f6.ibd
root@mysql-vm:/var/lib/mysql#
例3:创建datadir路径外的表空间

通用表空间数据文件可以放置在数据目录之外的位置,但是路径必须是innodb_directories的值或者附加到innodb_directories值的变量(innodb_data_home_dir、innodb_undo_directory和datadir)之一。

innodb_directories变量参数

innodb_directories变量参数内容如下:

Command-Line Format–innodb-directories=dir_name
System Variableinnodb_directories
ScopeGlobal
DynamicNo
SET_VAR Hint AppliesNo
TypeDirectory name
Default ValueNULL

innodb_directories参数的默认值为NULL。但是innodb_data_home_dir、innodb_undo_directory和datadir定义的目录会会附加到innodb_directories参数值上。

例:

mysql> show variables like 'innodb_directories';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| innodb_directories |       |
+--------------------+-------+
1 row in set (0.01 sec)

mysql> show variables like 'innodb_data_home_dir';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| innodb_data_home_dir |       |
+----------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'innodb_undo_directory';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_undo_directory | ./    |
+-----------------------+-------+
1 row in set (0.01 sec)

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

mysql>

/var/lib/mysql-files
drwx------ 12 mysql mysql 4096 Dec 24 22:10 mysql

参考:
https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_directories

修改innodb_directories变量参数需要修改MySQL配置文件,并重新启动MySQL服务。

例:创建datadir路径外的表空间

如果在未定义路径中创建通用表空间,由于不是已知目录,会发生如下ERROR 3121 (HY000)错误。

mysql> show variables like 'innodb_directories';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| innodb_directories |       |
+--------------------+-------+
1 row in set (0.01 sec)

mysql> create tablespace sqlplusdb_tb1 add datafile '/var/lib/mysql-files/sqlplusdb_tb1.ibd';
ERROR 3121 (HY000): The DATAFILE location must be in a known directory.
mysql>

可以通过修改innodb_directories变量参数添加已知目录。

修改innodb_directories变量参数

添加如下内容(innodb_directories=/var/lib/mysql-files)到MySQL配置文件中。
例:innodb_directories=/var/lib/mysql-files

root@mysql-vm:/etc/mysql# vi /etc/mysql/mysql.conf.d/mysqld.cnf
root@mysql-vm:/etc/mysql# systemctl stop mysql
root@mysql-vm:/etc/mysql# systemctl start mysql
创建datadir路径外的表空间

查看变量并创建datadir路径外的表空间的表空间

mysql> show variables like 'innodb_directories';
+--------------------+----------------------+
| Variable_name      | Value                |
+--------------------+----------------------+
| innodb_directories | /var/lib/mysql-files |
+--------------------+----------------------+
1 row in set (0.00 sec)

mysql> create tablespace test_tb3 add datafile '/var/lib/mysql-files/test_tb3.ibd';
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> select * from
    ->  information_schema.innodb_tablespaces t
    ->  join information_schema.innodb_datafiles d
    ->  on t.SPACE=d.SPACE
    ->  where t.NAME ='test_tb3'\G
*************************** 1. row ***************************
          SPACE: 92
           NAME: test_tb3
           FLAG: 18432
     ROW_FORMAT: Any
      PAGE_SIZE: 16384
  ZIP_PAGE_SIZE: 0
     SPACE_TYPE: General
  FS_BLOCK_SIZE: 4096
      FILE_SIZE: 114688
 ALLOCATED_SIZE: 114688
AUTOEXTEND_SIZE: 0
 SERVER_VERSION: 8.0.35
  SPACE_VERSION: 1
     ENCRYPTION: N
          STATE: normal
          SPACE: 0x3932
           PATH: /var/lib/mysql-files/test_tb3.ibd
1 row in set (0.00 sec)

mysql>

参考:
MySQL 8.0 OCP (1Z0-908) 考点精析-安装与配置考点1:设置系统变量

例4:创建InnoDB通用表空间的限制

可以在数据目录(datadir)中创建通用表空间。

mysql> create tablespace sqlplusdb_tb1 add datafile '/var/lib/mysql/sqlplusdb_tb1.ibd';
Query OK, 0 rows affected (0.02 sec)

但是为了避免与隐式创建的每个表一个文件的表空间发生冲突,不支持在数据目录(datadir)的子目录中创建InnoDB通用表空间。
如果在数据目录(datadir)的子目录中创建InnoDB通用表空间会报ERROR 3121 (HY000)错误。

例:

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

mysql> create tablespace sqlplusdb_tb2 add datafile '/var/lib/mysql/testdb/sqlplusdb_tb1.ibd';
ERROR 3121 (HY000): The DATAFILE location cannot be under the datadir.
mysql>

通用表空间中的表

和Oracle一样,MySQL在创建表时可以指定表空间也可以修改表的表空间。

例1:创建表指定通用表空间

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 -A

Database changed
mysql> CREATE TABLE test_t1 (c1 INT) TABLESPACE test_tbs1 ;
Query OK, 0 rows affected (0.01 sec)

mysql>
mysql> SHOW CREATE TABLE  test_t1;
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                           |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| test_t1 | CREATE TABLE `test_t1` (
  `c1` int DEFAULT NULL
) /*!50100 TABLESPACE `test_tbs1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)

mysql>
mysql> select
    ->      name as 'table_name',
    ->      space_type
    ->  from
    ->      information_schema.innodb_tables
    ->  where
    ->      name like '%test_t1%' \g
+----------------+------------+
| table_name     | space_type |
+----------------+------------+
| testdb/test_t1 | General    |
+----------------+------------+
1 row in set (0.08 sec)

例2:修改表的表空间

通过ALTER TABLE语句的TABLESPACE选项可以修改表的表空间,将表在通用表空间、独立表空间或系统表空间之间进行移动。

需要注意的是:

- ALTER TABLE ... TABLESPACE操作将导致对表进行全表重建(即使TABLESPACE属性未发生更改也会重建)。
- ALTER TABLE ... TABLESPACE语法不支持将表从临时表空间移动到持久表空间。
例2-1:修改到不同的通用表空间中

通过ALTER TABLE tbl_name TABLESPACE [=] tablespace_name修改表到不同的通用表空间中

例:

mysql> SHOW CREATE TABLE  test_t1;
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                           |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| test_t1 | CREATE TABLE `test_t1` (
  `c1` int DEFAULT NULL
) /*!50100 TABLESPACE `test_tbs1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

mysql> ALTER TABLE test_t1 tablespace=sqlplusdb_tb1;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE  test_t1;
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                               |
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test_t1 | CREATE TABLE `test_t1` (
  `c1` int DEFAULT NULL
) /*!50100 TABLESPACE `sqlplusdb_tb1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
例2-2:修改表从独立表空间或系统表空间到通用表空间

可以通过如下命令修改表从独立表空间或系统表空间到通用表空间。

ALTER TABLE tbl_name TABLESPACE [=] tablespace_name

例:修改表从独立表空间到通用表空间

mysql> select
    ->      name as 'table_name',
    ->      space_type
    ->  from
    ->      information_schema.innodb_tables
    ->  where
    ->      name ='testdb/test_file_pertable_tablespace' \g
+--------------------------------------+------------+
| table_name                           | space_type |
+--------------------------------------+------------+
| testdb/test_file_pertable_tablespace | Single     |
+--------------------------------------+------------+
1 row in set (0.00 sec)

mysql> alter table test_file_pertable_tablespace tablespace=test_tbs1;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select
    ->      name as 'table_name',
    ->      space_type
    ->  from
    ->      information_schema.innodb_tables
    ->  where
    ->      name ='testdb/test_file_pertable_tablespace' \g
+--------------------------------------+------------+
| table_name                           | space_type |
+--------------------------------------+------------+
| testdb/test_file_pertable_tablespace | General    |
+--------------------------------------+------------+
1 row in set (0.00 sec)

mysql>

例:修改表从系统表空间到通用表空间

mysql>  select
    ->       name as 'table_name',
    ->       space_type
    ->   from
    ->       information_schema.innodb_tables
    ->   where
    ->       name ='testdb/test_file_pertable' \g
+---------------------------+------------+
| table_name                | space_type |
+---------------------------+------------+
| testdb/test_file_pertable | System     |
+---------------------------+------------+
1 row in set (0.01 sec)

mysql> alter table test_file_pertable tablespace=test_tbs1;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select
    ->      name as 'table_name',
    ->      space_type
    ->  from
    ->      information_schema.innodb_tables
    ->  where
    ->      name ='testdb/test_file_pertable' \g
+---------------------------+------------+
| table_name                | space_type |
+---------------------------+------------+
| testdb/test_file_pertable | General    |
+---------------------------+------------+
1 row in set (0.00 sec)

mysql>
例2-3:修改表从通用表空间或系统表空间到独立表空间

可以通过如下命令修改表从通用表空间或系统表空间到独立表空间。

ALTER TABLE tbl_name TABLESPACE [=] innodb_file_per_table;

例:修改表从通用表空间到独立表空间

mysql> select
    ->      name as 'table_name',
    ->      space_type
    ->  from
    ->      information_schema.innodb_tables
    ->  where
    ->      name ='testdb/test_file_pertable' \g
+---------------------------+------------+
| table_name                | space_type |
+---------------------------+------------+
| testdb/test_file_pertable | General    |
+---------------------------+------------+
1 row in set (0.00 sec)

mysql>  alter table test_file_pertable tablespace=innodb_file_per_table;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>  select
    ->       name as 'table_name',
    ->       space_type
    ->   from
    ->       information_schema.innodb_tables
    ->   where
    ->       name ='testdb/test_file_pertable' \g
+---------------------------+------------+
| table_name                | space_type |
+---------------------------+------------+
| testdb/test_file_pertable | Single     |
+---------------------------+------------+
1 row in set (0.01 sec)

mysql>
例2-4:修改表从通用表空间或独立表空间到系统表空间

可以通过如下命令修改表从通用表空间或独立表空间到系统表空间。

ALTER TABLE tbl_name TABLESPACE [=] innodb_system;

例:修改表从独立表空间到系统表空间

mysql> select
    ->      name as 'table_name',
    ->      space_type
    ->  from
    ->      information_schema.innodb_tables
    ->  where
    ->      name ='testdb/test_file_pertable' \g
+---------------------------+------------+
| table_name                | space_type |
+---------------------------+------------+
| testdb/test_file_pertable | Single     |
+---------------------------+------------+
1 row in set (0.00 sec)

mysql>
mysql> alter table test_file_pertable tablespace=innodb_system;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select
    ->      name as 'table_name',
    ->      space_type
    ->  from
    ->      information_schema.innodb_tables
    ->  where
    ->      name ='testdb/test_file_pertable' \g
+---------------------------+------------+
| table_name                | space_type |
+---------------------------+------------+
| testdb/test_file_pertable | System     |
+---------------------------+------------+
1 row in set (0.00 sec)

参考

15.6.3.3 General Tablespaces
https://dev.mysql.com/doc/refman/8.0/en/general-tablespaces.html

13.1.21 CREATE TABLESPACE Statement
https://dev.mysql.com/doc/refman/8.0/en/create-tablespace.html

Chapter 2 Server Error Message Reference
https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html
Error number: 3121; Symbol: ER_WRONG_FILE_NAME; SQLSTATE: HY000
Message: Incorrect File Name ‘%s’.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux磁盘与文件管理

目录 一、磁盘介绍 1. 磁盘数据结构 2. 磁盘的接口类型 3. 磁盘在Linux上的表现形式 二、磁盘分区与MBR 1. 分区优缺点 2. 分区方式 3. MBR分区 4. GPT分区 三、文件系统 1. 文件系统的组成 2. 默认的文件系统 3. 文件系统的作用 4. 模拟破坏文件与修复文件 4…

项目总结报告

《项目总结报告》 1.项目概要(项目基本信息,项目期间,项目成果,项目开发工具环境) 2.项目工作分析(需求变更,计划与进度实施,投入情况,收益情况,质量情况&…

【Linux】Linux 下基本指令 -- 详解

无论是什么命令,用于什么用途,在 Linux 中,命令有其通用的格式: command [-options] [parameter] command:命令本身。-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的…

navicat premium历史版本下载及更新navicat premium15 永久(使用)有效期

1、navicat premium介绍 Navicat Premium 是一套可创建多个连接的数据库开发工具,让你从单一应用程序中同时连接 MySQL、Redis、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 。它与 GaussDB 、OceanBase 数据库及 Amazon RDS、Amazon Aurora、Amaz…

windows和linux操作Git(序章2)

Git 分布式版本控制系统(序章1) ## Linux 下安装 Git🔺 ​ ## Git命令大全🔺 windows和linux通用 安装完 Git 后,需要进行配置,如姓名、Email 等 git config --global user.name "你的名字"git config --global us…

解算人生--写于2023跨年之夜

最近买了一本书,书名叫《计算》 读了部分内容,虽然理解上还需要再下下功夫,但是直观的感觉冲击还是挺大的,最明显的就是表面与本质的把握。大家可能都有这样一种感觉,初步涉足某一领域时,开始我们都会被大量…

vmware部署docker+springboot+MySQL(超详细)

一、前期准备 (一)安装jdk #docker search openjdk #docker pull openjdk:8 (二)确认网络 如果局域网其他终端(如手机访问),虚拟机网络连接需要选择《桥接》模式,而且,需要使用有线连接,不能使用Wi-Fi,切忌切忌! 并且要选择实际的那个有线连接。比如我这里是“R…

Leetcode 剑指 Offer II 059. 数据流中的第 K 大元素

题目难度: 简单 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 设计一个找到数据流中第 k 大元素的类(class&#xf…

文心一言 VS 讯飞星火 VS chatgpt (169)-- 算法导论13.2 2题

二、用go语言,证明:在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1种可能的旋转。 文心一言: 要证明在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1 种可能的旋转,我们可以按照以下步骤逐步推导&#xff…

声明式导航传参详情

1 动态路由传参 路由规则path ->/article/:aid 导航链接 <router-link to"/article/1">查看第一篇文章</router-link> 组件获取参数: this.$route.params.aid 如果想要所有的值&#xff0c;就用this. $route. params 注意&#xff1a;这两个必须匹配…

【数据结构】图论与并查集

一、并查集 1.原理 简单的讲并查集&#xff0c;就是查询两个个元素&#xff0c;是否在一个集合当中&#xff0c;这里的集合用树的形式进行表示。并查集的本质就是森林, 即多棵树。 我们再来简单的举个例子: 假设此时的你是大一新生&#xff0c;刚进入大学&#xff0c;肯定是…

【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数

文章目录 &#x1f680;前言&#x1f680;C有何过C之处&#xff1f;&#x1f680;C中的关键字&#x1f680;命名空间✈️为什么要引入命名空间&#xff1f;✈️命名空间的定义✈️如何使用命名空间中的内容呢&#xff1f; &#x1f680;C中的输入和输出✈️C标准库的命名空间✈…

SpringBoot实用篇

SpringBoot实用篇 1、热部署 什么是热部署&#xff1f; 所谓热部署&#xff0c;就是在应用正在运行的时候升级软件&#xff0c;却不需要重新启动应用。对于Java应用程序来说&#xff0c;热部署就是在运行时更新Java类文件。 热部署有什么用&#xff1f; 节约时间&#xff0c;热…

Mybatis枚举类型处理和类型处理器

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…

linux下docker搭建Prometheus +SNMP Exporter +Grafana进行核心路由器交换机监控

一、安装 Docker 和 Docker Compose https://docs.docker.com/get-docker/ # 安装 Docker sudo apt-get update sudo apt-get install -y docker.io# 安装 Docker Compose sudo apt-get install -y docker-compose二、创建配置文件及测试平台是否正常 1、选个文件夹作为自建…

医学图像分割中的频域多轴表示学习

摘要 https://arxiv.org/pdf/2312.17030v1.pdf 最近&#xff0c;视觉Transformer (ViT)在医学图像分割&#xff08;MIS&#xff09;中得到了广泛应用&#xff0c;这归功于其在空间域应用自注意力机制来建模全局知识。然而&#xff0c;许多研究都侧重于改进空间域模型&#xff…

LeetCode刷题--- 不同路径 III

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述递…

x-cmd pkg | gum - 很好看的终端 UI 命令行工具

目录 简介首次用户功能特点Bubbles 与 Lip Gloss进一步探索 简介 gum 由 Charm 组织于 2022 年使用 Go 语言开发。旨在帮助用户编写 Shell 脚本与 dotfiles 时提供一系列快捷使用&#xff0c;可配置&#xff0c;可交互&#xff0c;美观的 Terminal UI 组件。 首次用户 使用 x…

U4_3 语法分析-自底向上分析-LR0/LR1/SLR分析

文章目录 一、LR分析法1、概念2、流程3、LR分析器结构及分析表构造1&#xff09;结构2&#xff09;一些概念 二、LR(0)分析法1、流程2、分析动作1&#xff09;移近2&#xff09;归约(reduce) 3、总结1&#xff09;LR分析器2&#xff09;构造DFA3&#xff09;构造LR(0)的方法(三…

Apache SSI 远程命令执行漏洞

一、环境搭建 二、访问upload.php 三、写shell <!--#exec cmd"id" --> 四、访问 如图所示&#xff0c;即getshell成功&#xff01;​