MySQL版本特性和存储引擎选择

MySQL版本特性和存储引擎选择

1.说一下MySQL 5.5 5.6 5.7 8.0 各个版本的特性

MySQL 5.5

优点:

  • 稳定性:5.5版本是长期支持(LTS)版本,因此它非常稳定,被广泛部署在生产环境中。
  • 兼容性:与旧版本的MySQL和各种应用程序有很好的兼容性。
  • 性能:相比之前的版本,5.5在性能上有所提升,尤其是在InnoDB存储引擎上。

缺点:

  • 过时:5.5版本已经停止支持,不再接收安全更新和修复。
  • 缺少新特性:不包含后续版本引入的新特性,如JSON支持、窗口函数等。
  • 性能限制:与更新的版本相比,性能和扩展性上可能有所不足。

MySQL 5.6

优点:

  • 性能提升:5.6版本引入了多项优化,包括对InnoDB的改进,提供了更好的并发处理能力。
  • 新特性:引入了如JSON数据类型、窗口函数、在线DDL操作等新特性。
  • 安全性:提供了更强大的安全特性,如角色基于访问控制和增强的身份验证插件。

缺点:

  • 兼容性问题:某些旧应用程序可能需要修改才能与5.6版本兼容。
  • 性能问题:虽然引入了许多优化,但在某些特定工作负载下可能会出现性能退化。

MySQL 5.7

优点:

  • 性能显著提升:5.7版本在性能上比5.6有显著提升,特别是在事务处理和并发方面。
  • 新特性:引入了如MySQL Group Replication、GIS数据类型、NoSQL接口等先进特性。
  • 安全性增强:提供了默认的SSL连接和更多的安全选项。

缺点:

  • 升级复杂性:从旧版本升级到5.7可能需要额外的工作和测试。
  • 某些特性不兼容:移除了一些旧特性,如NDB Cluster。

MySQL 8.0

优点:

  • 全面的性能改进:8.0版本引入了更多的性能优化和新特性,如默认的InnoDB存储引擎和更好的并行复制。
  • 现代化特性:支持窗口函数、公共表表达式(CTE)、角色和资源组等现代SQL特性。
  • 改进的安全性:提供了更多的安全特性,如默认的加密连接和新的用户账户管理。

缺点:

  • 升级挑战:从早期版本升级到8.0可能需要大量的准备工作和应用修改。
  • 某些应用不兼容:一些旧的应用程序可能无法直接在8.0上运行,需要进行适当的修改和测试。

版本选择建议:

1. 支持和安全性

  • 选择一个仍在官方支持期内的版本,以确保安全更新和错误修复。
  • 避免使用已停止支持的旧版本,因为它们可能包含未修复的安全漏洞。

2. 特性需求

  • 评估您的应用程序是否需要最新版本的MySQL提供的新特性,如JSON支持、窗口函数、InnoDB的增强等。
  • 如果您的应用程序依赖于特定版本的特性,可能需要选择一个与这些特性兼容的版本。

3. 性能要求

  • 考虑您的应用程序的性能需求。新版本的MySQL通常提供性能优化和改进。
  • 如果您的应用程序对性能有特殊要求,可能需要测试不同版本的MySQL以确定哪个版本最适合。

4. 兼容性和迁移成本

  • 考虑升级到新版本的兼容性问题和迁移成本。
  • 如果您的应用程序或现有代码库与新版本不兼容,可能需要进行修改或寻找替代方案。

5. 社区和资源

  • 考虑社区支持和可用资源。较新的版本通常有更多的社区支持和文档。
  • 考虑是否有现成的工具、库和框架与特定版本的MySQL兼容。

6. 测试和验证

  • 在决定之前,对目标版本进行彻底的测试,包括性能测试和安全测试。
  • 确保在升级或迁移之前有完整的数据备份和恢复计划。

7. 长期规划

  • 考虑您的长期技术规划。选择一个能够支持未来增长和扩展的版本。

建议

  • 对于大多数用户,建议使用最新的稳定版本,如MySQL 8.0,因为它提供了最佳的性能、安全性和新特性。
  • 如果您的应用程序已经在一个较旧的版本上运行良好,并且没有迫切的升级需求,可以继续使用该版本,但应计划在未来进行升级。
  • 如果您正在开发新的应用程序,建议直接使用最新的MySQL版本,以充分利用其提供的所有优势。


2.MySQL加列三种算法是什么? 区别是什么?

  1. COPY (默认)
  2. INPLACE
  3. ALTER

1. COPY 算法

当使用COPY算法时,MySQL会创建表的一个副本,然后在副本上执行列的添加操作。完成后,MySQL会用修改后的副本替换原来的表。这个过程中,原来的表被锁定,直到操作完成。这种方式对于大型表来说可能会比较慢,因为它需要创建整个表的副本。

2. INPLACE 算法

INPLACE算法允许在原地修改表结构,而不需要创建表的副本。这意味着加列操作可以在不锁定整个表的情况下进行。INPLACE算法对于大型表和高并发的环境更为友好,因为它减少了锁定时间和空间消耗。然而,并非所有的加列操作都支持INPLACE算法,它依赖于具体的操作类型。

3. ALTER 算法

ALTER算法是MySQL 5.6版本引入的,它提供了一种新的表结构修改方法,旨在改进COPYINPLACE算法的性能。ALTER算法尝试结合两者的优点,根据操作的类型和表的大小来选择最合适的执行方式。在某些情况下,ALTER算法可以减少磁盘空间的使用并提高操作速度。

区别

  • 锁定级别COPY算法通常需要锁定整个表,而INPLACEALTER算法可以在更低的锁定级别下执行。
  • 性能COPY算法可能在大型表上性能较差,因为它需要创建表的副本。INPLACEALTER算法通常性能更好,尤其是在大型表和高并发环境下。
  • 适用性:并非所有的结构修改都支持INPLACE算法。ALTER算法尝试自动选择最佳算法。

如何指定算法

在执行ALTER TABLE操作时,可以通过ALGORITHM选项指定算法:

ALTER TABLE table_name ADD COLUMN new_column_name 
COLUMN_TYPE ALGORITHM = {COPY | INPLACE | ALTER};

然而,通常不需要手动指定算法,因为MySQL会根据操作的类型和表的状态自动选择最合适的算法。只有在特定的情况下,当你需要控制锁定级别或有特定的性能要求时,才需要手动指定算法。


3.假如入你是DBA,一个新业务研发考虑使用5.6,请你说服他们使用 MySQL8.0

1. 安全性和支持

  • MySQL 8.0是最新的稳定版本,提供了更强的安全特性,包括默认的SSL连接、新的密码验证插件和更多的安全选项。使用最新版本意味着你的应用程序将从最新的安全更新中受益。
  • MySQL 5.6已经停止官方支持,这意味着它不再接收安全补丁和性能改进。使用不再受支持的版本可能会使系统面临安全风险。

2. 性能提升

  • MySQL 8.0引入了多项性能优化,特别是在InnoDB存储引擎上。这些优化包括更好的并行复制、更快的事务处理和更高效的资源利用。
  • 新版本还包括对JSON数据类型的原生支持、窗口函数等现代特性,这些都可以提高查询性能和开发效率。

3. 新特性和改进

  • MySQL 8.0提供了许多新特性,如公共表表达式(CTE)、角色和资源组、增强的GIS支持等,这些特性可以为新业务提供更多灵活性和扩展性。
  • 新版本的MySQL也改进了对现代开发实践的支持,例如更容易的SQL模式管理、更好的错误和状态信息,这些都有助于提高开发和维护的效率。

4. 长期维护和可持续性

  • 选择一个长期支持(LTS)版本,如MySQL 8.0,可以确保你的应用程序在未来几年内都能获得支持和更新。
  • 使用最新的MySQL版本可以帮助避免未来需要进行昂贵和复杂的升级。

5. 社区和生态系统

  • MySQL 8.0作为最新的版本,拥有更活跃的社区和更丰富的资源,包括文档、教程、工具和第三方库。
  • 使用最新的MySQL版本可以更容易地找到解决问题的帮助和最佳实践。

6. 兼容性和迁移

  • 虽然新版本可能需要一些调整和测试来确保兼容性,但长期来看,使用最新的MySQL版本将减少未来迁移的复杂性和风险。
  • 迁移到MySQL 8.0也可以作为一个机会来审查和优化现有的数据库架构和查询,从而提高整体性能和效率。

总结来说,使用MySQL 8.0不仅可以提供更好的性能和安全性,还可以确保长期的可维护性和对新特性的访问。作为DBA,我会强调这些优势,并提供必要的支持和资源来帮助团队顺利迁移到新版本。同时,我也会确保备份和迁移计划的周全,以保护数据安全并减少业务中断的风险。

4.InnoDB存储引擎和MVISAM存储引擎有哪些区别?

InnoDB存储引擎

  • 事务支持:InnoDB提供完整的事务支持,包括ACID(原子性、一致性、隔离性、持久性)特性。
  • 并发控制:InnoDB使用行级锁和MVCC(多版本并发控制)来实现高并发。
  • 存储结构:InnoDB使用B-tree索引作为主要的索引结构,适用于全功能的OLTP(在线事务处理)系统。
  • 外键约束:InnoDB支持外键约束,可以维护数据库的引用完整性。
  • 崩溃恢复:InnoDB具有强大的崩溃恢复机制,能够确保数据的一致性和完整性。
  • 可扩展性:InnoDB设计用于高负载和高并发的场景,适合大型应用和企业级解决方案。

MVSAM存储引擎

  • 事务支持:MVSAM是一个早期的存储引擎,不支持事务处理。
  • 并发控制:MVSAM使用表级锁,这可能导致并发性能不如使用行级锁的存储引擎。
  • 存储结构:MVSAM使用B-tree和哈希索引,但它的功能和性能不如InnoDB。
  • 外键约束:MVSAM不支持外键约束。
  • 崩溃恢复:MVSAM的崩溃恢复能力较弱,不如InnoDB稳定和可靠。
  • 使用场景:MVSAM主要用于内部临时表和一些特定的应用场景,不适合作为主存储引擎。

总结

InnoDB是MySQL中最常用的存储引擎之一,因为它提供了强大的事务支持、高并发处理能力和良好的崩溃恢复机制。它被设计用于处理大量的短期和长期事务,并且能够很好地支持外键约束和复杂的查询操作。

相比之下,MVSAM存储引擎已经很少使用,它在MySQL 5.7版本后已被废弃。MVSAM在某些特定场景下可能仍有其用途,但它的功能和性能限制使其不适合大多数现代数据库应用的需求。


5.TokuDB有哪些应用场景?

TokuDB存储引擎是为MySQL和MariaDB设计的高性能、高压缩率的存储引擎。它结合了InnoDB的事务支持和Memory存储引擎的快速写入特性,同时提供了数据压缩功能。以下是TokuDB存储引擎的一些主要应用场景:

1. 数据库压缩

当你的数据库面临存储空间限制时,TokuDB的压缩功能可以帮助节省磁盘空间。这对于数据量巨大的应用尤其有用,比如大型的电子商务平台、社交媒体应用或任何需要存储大量用户数据的系统。

2. 高写入负载的应用

TokuDB特别适合于写入操作频繁的应用场景,如日志记录、内容管理系统、在线游戏、实时数据处理等。TokuDB的写入性能通常优于InnoDB,尤其是在写入大量数据时。

3. OLTP系统

在线事务处理(OLTP)系统需要快速的读写操作和良好的事务支持。TokuDB提供了这些特性,同时保持了数据的一致性和完整性。

4. 分析和报告

TokuDB的快速读取性能使其适合需要频繁执行复杂查询和报告的应用,如商业智能(BI)和数据分析系统。

5. 实时应用

对于需要实时响应的应用,如金融交易平台、实时监控系统等,TokuDB的高性能和低延迟特性可以提供更好的用户体验。

6. 云数据库服务

在云数据库服务中,TokuDB的压缩和性能特性可以帮助降低成本,同时提供高效的数据管理。

7. 备份和恢复

TokuDB提供了快速的崩溃恢复机制,这对于需要定期备份和快速恢复的系统来说是一个重要的优势。

8. 测试和开发环境

在测试和开发环境中,TokuDB可以帮助开发人员快速迭代和测试新的数据库设计,同时提供与生产环境相似的性能特征。

注意事项

尽管TokuDB提供了许多优势,但在选择存储引擎时,应考虑应用程序的特定需求和工作负载。TokuDB可能不适合所有场景,特别是在需要最高级别的并发控制和外键支持的情况下,InnoDB可能是更好的选择。此外,TokuDB在某些版本的MySQL和MariaDB中不再是默认存储引擎,因此在使用之前需要确认其兼容性和支持情况。

在选择TokuDB之前,建议进行充分的性能测试和评估,以确保它满足你的性能要求和应用场景。同时,确保你的数据库管理员和开发团队熟悉TokuDB的特性和最佳实践。


6.适用MEMORY存储引擎要注意哪些问题?

1. 数据持久性

  • MEMORY表中的数据只存在于内存中,不会因为数据库重启或服务器崩溃而持久化到磁盘。如果你需要数据持久化,请考虑使用其他存储引擎,如InnoDB。

2. 数据安全性

  • MEMORY表不支持事务和外键,因此在需要这些特性的场景中应避免使用MEMORY存储引擎。

3. 并发访问

  • MEMORY表在并发访问下可能不是线程安全的。虽然MySQL 5.7及以上版本通过使用InnoDB存储引擎来存储临时表和MEMORY表的数据来解决了这个问题,但在早期版本中,这可能导致并发问题。

4. 性能开销

  • MEMORY表虽然提供了快速的访问速度,但在某些情况下,如大量数据的插入、更新操作,或者复杂的查询,可能会有性能开销。此外,如果表的大小超过了可用内存,MySQL会使用交换空间,这会显著降低性能。

5. 存储限制

  • MEMORY表有大小限制。在MySQL 5.7及以上版本中,MEMORY表的大小限制为64GB,但这仍然受限于可用内存和系统架构。

6. 数据备份和恢复

  • 由于MEMORY表中的数据不在磁盘上持久化,因此在备份和恢复数据库时,这些表的数据不会被包含在内。如果你需要备份或恢复MEMORY表中的数据,你需要在内存中手动处理。

7. 表的生命周期

  • MEMORY表的生命周期与MySQL服务器的运行周期相同。如果MySQL服务器重启,所有MEMORY表中的数据都会丢失。

8. 适用场景

  • MEMORY存储引擎最适合用于那些不需要持久化、访问速度快、数据量小的场景,如缓存、临时表、会话数据等。

9. 配置和优化

  • 确保你的MySQL服务器有足够的内存来支持MEMORY表的使用,以避免性能下降。
  • 考虑使用查询缓存来提高读取操作的性能。

7.CSV存储引擎有哪些适用场景?

1. 临时或一次性数据存储

当你需要临时存储一些数据,而这些数据不需要持久化到数据库中时,CSV存储引擎是一个轻量级的选择。例如,你可以使用CSV表来存储一次性的数据分析结果或中间处理数据。

2. 与外部应用程序集成

CSV文件格式广泛用于各种应用程序和数据处理工具中。如果你的应用程序需要与外部系统交换数据,使用CSV存储引擎可以简化数据的导入和导出过程。

3. 数据仓库和ETL过程

在数据仓库和ETL(提取、转换、加载)过程中,CSV文件常作为中间格式。CSV存储引擎可以方便地将数据加载到MySQL中,或者从MySQL中导出到CSV文件,以便进行进一步的分析和处理。

4. 测试和开发环境

在测试和开发阶段,你可能需要快速创建和删除表来测试不同的数据结构和查询。CSV存储引擎提供了一种快速且无需复杂配置的方式来实现这一点。

5. 简单的数据存储和访问

对于数据结构简单、不需要复杂查询或事务支持的应用,CSV存储引擎可以提供足够的功能。例如,存储配置参数、用户偏好设置或简单的日志数据。

6. 教育和学习

对于学习数据库基础的用户,CSV存储引擎提供了一个简单的方式来理解数据的存储和检索,因为它与常见的电子表格软件兼容,易于理解和操作。

注意事项

  • CSV存储引擎不支持索引,这意味着所有查询都是全表扫描,对于大量数据的查询可能效率不高。
  • CSV存储引擎不支持事务,不适合需要事务支持的场景。
  • 数据安全性和完整性不如其他存储引擎,因为CSV文件容易受到外部编辑和损坏。
  • CSV存储引擎的性能可能不如InnoDB或MyISAM等其他存储引擎,特别是在并发访问和大量数据操作时。
  • 需要考虑CSV文件的安全性和备份,因为CSV文件可以被任何文本编辑器打开和修改。

日志文件

1 讲一下Binlog的三种记录格式,并说下优缺点
2现有MysQL机器,磁盘空间使用率超过90%,发现Binlog保存的是40天(binlog expire logs seconds参数配置的是3456000),实际业
务只要求保留15天内的binlog就行,请写出处理步骤
3 Binlog的落盘频率由什么参数控制,不同值代表什么?
4 慢查询日志中,Rows sent和Rows examined有什么区别5 你遇到过MySQL启动异常吗? 是怎么处理的?
6 讲一下两阶段提交
7 讲一下中继日志在崩溃恢复中的作用
8 中继日志是如何落盘的?
9 Undo Log有哪些作用?
10 MySQL是怎样判断哪些Undo Log是可以Purge的?
11 Binlog和Redo Log有什么区别? Undo Log和Redo Log有什么区别?

备份

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

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

相关文章

Golang | Leetcode Golang题解之第3题无重复字符的最长子串

题目: 题解: func lengthOfLongestSubstring(s string) int {// 哈希集合,记录每个字符是否出现过m : map[byte]int{}n : len(s)// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动r…

【C++常用函数介绍】isalpha,isalnum、isdigit、islower、isupper 用法

首先 isalpha,isalnum、isdigit、islower、isupper 的使用方法都需要用到一个头文件 #include<ctype.h>其次 系统的介绍以上函数的用法 isalpha()用来判断一个字符是否为字母 isalnum&#xff08;&#xff09;用来判断一个字符是否为数字或者字母&#xff0c;也就是说…

【数据结构】——二叉树的递归实现,看完不再害怕递归

创作不易&#xff0c;感谢三连加支持&#xff1f;&#xff01; 一 递归理解 递归无非就是相信它&#xff0c;只有你相信它&#xff0c;你才能写好递归&#xff01;为什么&#xff1f;请往下看 在进入二叉树的实现之前&#xff0c;我们得先理解一遍递归&#xff0c;可能很多…

Android JNI 调用第三方SO

最近一个项目使用了Go 编译了一个so库&#xff0c;但是这个so里面还需要使用第三方so库pdfium, 首先在Android工程把2个so库都放好 在jni中只能使用dlopen方式&#xff0c;其他的使用函数指针的方式来调用&#xff0c;和windows dll类似&#xff0c;不然虽然编译过了但是会崩溃…

SpringBoot -- 外部化配置

我们如果要对普通程序的jar包更改配置&#xff0c;那么我们需要对jar包解压&#xff0c;并在其中的配置文件中更改配置参数&#xff0c;然后再打包并重新运行。可以看到过程比较繁琐&#xff0c;SpringBoot也注意到了这个问题&#xff0c;其可以通过外部配置文件更新配置。 我…

Android Studio控制台输出中文乱码问题

控制台乱码现象 安卓在调试阶段&#xff0c;需要查看app运行时的输出信息、出错提示信息。 乱码&#xff0c;会极大的阻碍开发者前进的信心&#xff0c;不能及时的根据提示信息定位问题&#xff0c;因此我们需要查看没有乱码的打印信息。 解决步骤&#xff1a; step1: 找到st…

RUST语言变量与数据类型使用

使用之前了解: fn main() 表示程序入口点 println!("要输出的内容"); 表示格式化输出 变量与常量声明: let 变量:变量类型 变量值;let mut 变量:变量类型 变量值; const 常量:常量类型 常量值 如果 声明时不指定类型,将根据赋值类型自动推导 变量类型参与下…

词向量模型评估

一、既有范式 词向量的语言学特性&#xff1a;这部分主要通过一些具体的指标来评估词向量是否能捕捉到语言的内在规律&#xff0c;包括&#xff1a; 相似度评价指标&#xff1a;检查词向量空间中距离近的词是否与人类直觉一致&#xff0c;例如&#xff0c;利用余弦相似度来评估…

Kali WSL2(windows下安装了kali)

自从WSL2以来&#xff0c;感觉各方面也挺好的&#xff0c;有时候比vmware workstation方便&#xff0c;特别单独使用一个linux的时候。所以研究了下kali&#xff0c;也是很OK的&#xff0c;以及验证完成了。 本文参考官网&#xff1a; Kali Linux | Penetration Testing and Et…

鸿蒙手机cordova-plugin-camera不能拍照和图片不显示问题

鸿蒙手机cordova-plugin-camera不能拍照和图片不显示问题 一、运行环境 1、硬件 手机型号&#xff1a;NOVA 7 系统&#xff1a;HarmonyOS版本 4.0.0 2、软件 android SDK platforms&#xff1a;14.0(API Level 34)、13.0&#xff08;API Level 33&#xff09; SDK Build-T…

Linux-Arm GDB调试(本地和远程)

目录 问题描述 已有coredump 没有coredump 小结 问题描述 Linux本机调试使用GDB非常方便&#xff0c;但嵌入式Linux设备资源有限&#xff0c;通常并没有交叉编译工具&#xff0c;那嵌入式设备上的应用发生问题如何查找问题&#xff1f;通常IDE有远程DEBUG功能&#xff0c;这…

整合Mybatis(Spring学习笔记十二)

一、导入相关的包 junit 包 Mybatis包 mysql数据库包 Spring相关的包 Aop相关的包 Mybatis-Spring包&#xff08;现在就来学这个&#xff09; 提示jdk版本不一致的朋友记得 jdk8只支持spring到5.x 所以如果导入的spring(spring-we…

MFC通用静态库制作与使用

开发环境VS2013 1、新建工程&#xff0c;选择Win32 Project&#xff0c;命名&#xff0c;选择路径等 2、选择Static library &#xff0c;勾选MFC 3、点击完成。在工程中添加相应的头文件、源文件等通用功能函数或者类。 4、在其他工程引入使用。在使用的工程项目设置中Linker…

openstack云计算(二)——使用Packstack安装器安装一体化OpenStack云平台

初步掌握OpenStack快捷安装的方法。掌握OpenStack图形界面的基本操作。 一【准备阶段】 &#xff08;1&#xff09;准备一台能够安装OpenStack的实验用计算机&#xff0c;建议使用VMware虚拟机。 &#xff08;2&#xff09;该计算机应安装CentOS 7&#xff0c;建议采用CentO…

网络与并发编程(二)

线程_信号量 互斥锁使用后&#xff0c;一个资源同时只有一个线程访问。如果某个资源&#xff0c;我们同时想让N个(指定数值)线程访问&#xff1f;这时候&#xff0c;可以使用信号量。 信号量控制同时访问资源的数量。信号量和锁相似&#xff0c;锁同一时间只允许一个对象(进程…

深入理解npm常用命令

npm&#xff08;Node Package Manager&#xff09;是 Node.js 的包管理工具&#xff0c;用于管理 Node.js 应用程序的依赖包。除了安装、更新和卸载依赖包外&#xff0c;npm 还提供了许多其他功能&#xff0c;如初始化项目、运行脚本、查看依赖树等。本文将详细介绍一些常用的 …

使用Node.js常用命令提高开发效率

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;广泛用于构建服务器端应用程序和命令行工具。Node.js提供了丰富的命令和工具&#xff0c;可以帮助开发者更高效地开发应用程序。在日常开发中&#xff0c;除了Node.js本身的核心功能外&#xff0c;npm&#x…

Python搭建编程环境-安装Python3解释器

✅作者简介&#xff1a;CSDN内容合伙人、新星计划第三季Python赛道Top1&#x1f3c5; &#x1f525;本文已收录于Python系列专栏&#xff1a;零基础学Python &#x1f4ac;订阅专栏后可私信博主进入Python学习交流群&#xff0c;进群可领取Python视频教程以及Python相关电子书…

玫瑰图和雷达图(自备)

目录 玫瑰图 数据格式 绘图基础 绘图升级&#xff08;文本调整&#xff09; 玫瑰图 下载数据data/2020/2020-11-24 mirrors_rfordatascience/tidytuesday - 码云 - 开源中国 (gitee.com) R语言绘图—南丁格尔玫瑰图 - 知乎 (zhihu.com) 数据格式 rm(list ls()) libr…

[实验报告]--基于端口安全

[实验报告] 目录 [实验报告] 一、项目背景 二、实验环境 三、项目规划设计 四、项目实施 五、验证项目成果 基于端口安全的 Jan16 公司网络组建 一、项目背景 Jan16 公司开发部为重要部门&#xff0c;所有员工使用指定的计算机工作&#xff0c;为防止员工或访客使 用个…