网站banner的设计要求/网站站外优化推广方式
1. MySQL是什么?
MySQL是一种开源的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据管理。MySQL具有高性能、可靠性、可扩展性和兼容性等特点,广泛应用于Web应用开发中。
2. MySQL中的数据类型有哪些?
MySQL支持多种数据类型,包括整数类型(如INT、BIGINT)、浮点数和定点数类型(如FLOAT、DOUBLE、DECIMAL)、字符串类型(如VARCHAR、CHAR、TEXT)、日期和时间类型(如DATE、TIME、DATETIME、TIMESTAMP)等。
3. 什么是MySQL中的事务?
MySQL中的事务是一个作为单个逻辑工作单元执行的一系列操作。事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这意味着事务内的操作要么全部成功,要么全部失败,以保持数据的一致性和完整性。
4.详细介绍事务的四个特性
1. 原子性(Atomicity)
定义:事务的原子性指的是事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。如果事务中的某个操作失败,则整个事务会回滚到事务开始前的状态,就像事务从未执行过一样。
作用:原子性保证了数据库的一致性和完整性,避免了因部分操作成功而导致的数据不一致问题。
示例:在转账过程中,如果从一个账户扣除金额的操作成功,但向另一个账户增加金额的操作失败,那么整个转账事务会被回滚,两个账户的金额都不会发生变化。
2. 一致性(Consistency)
定义:事务的一致性指的是事务执行前后,数据库的状态必须保持一致。这意味着事务的执行结果必须满足所有的完整性约束,包括外键约束、主键约束、唯一性约束等。
作用:一致性确保了数据库的数据在事务执行前后都符合业务规则和数据约束,避免了数据错误和不一致的问题。
示例:在转账过程中,事务的一致性确保了转账前后两个账户的余额总和保持不变,同时满足账户余额不能为负等约束条件。
3. 隔离性(Isolation)
定义:事务的隔离性指的是并发执行的事务之间应该相互隔离,一个事务的执行不能被其他事务干扰。不同的隔离级别提供了不同程度的事务隔离,以防止并发事务之间的冲突和干扰。
作用:隔离性保证了并发事务的独立性,避免了脏读、不可重复读和幻读等并发问题。
隔离级别:
-
读未提交(Read Uncommitted):最低的隔离级别,允许事务读取未被其他事务提交的变更。这可能导致脏读问题。
-
读已提交(Read Committed):一个事务只能读取到已经被其他事务提交的变更。这避免了脏读问题,但可能出现不可重复读问题。
-
可重复读(Repeatable Read):MySQL的默认隔离级别。一个事务在整个执行过程中,多次读取同一数据的结果是一致的。这避免了脏读和不可重复读问题,但可能出现幻读问题。
-
串行化(Serializable):最高的隔离级别,事务串行执行,避免了脏读、不可重复读和幻读问题。但事务的并发性能最低。
4. 持久性(Durability)
定义:事务的持久性指的是一旦事务被提交,它对数据库的修改就是永久性的,即使系统发生故障也不会丢失。
作用:持久性确保了事务的修改能够长期保存下来,不会因为系统故障而丢失数据。
实现方式:事务的持久性通常是通过将事务的修改记录到磁盘上的日志文件或数据文件中来实现的。这样,即使系统发生故障,也可以通过恢复日志文件或数据文件来恢复事务的修改。
综上所述,事务的四个特性(原子性、一致性、隔离性、持久性)共同保证了数据库在并发环境中的一致性和可靠性。
5. MySQL中的事务隔离级别有哪些?
MySQL支持四种事务隔离级别,分别是:
-
READ UNCOMMITTED(读未提交):允许事务读取未被其他事务提交的变更。
-
READ COMMITTED(读已提交):确保事务只能读取已经被其他事务提交的变更。
-
REPEATABLE READ(可重复读):保证在同一个事务内多次读取同样记录的结果是一致的。
-
SERIALIZABLE(可串行化):强制事务串行执行,以避免冲突。
6.脏读、幻读、不可重复读
1. 脏读(Dirty Read)
定义:脏读发生在一个事务读取了另一个事务未提交的数据时。由于这些数据可能会因为回滚而被撤销,因此读取到的数据是“脏”的,即不稳定的、不可靠的。
场景:事务A修改了一行数据,但尚未提交,此时事务B读取了事务A修改后的数据。如果事务A最终回滚,那么事务B读取到的数据就是无效的。
避免方式:将事务的隔离级别设置为读已提交(Read Committed)或更高,可以避免脏读的发生。
2. 不可重复读(Non-repeatable Read)
定义:不可重复读发生在一个事务内多次读取同一数据集合时,由于其他事务的并发更新,导致每次读取的数据可能不一致。
场景:事务A在两次查询之间,事务B对同一数据进行了修改并提交。当事务A再次查询时,发现数据已经改变,导致两次查询结果不一致。
避免方式:将事务的隔离级别设置为可重复读(Repeatable Read)或更高,可以避免不可重复读的发生。需要注意的是,MySQL的可重复读隔离级别通过多版本并发控制(MVCC)来避免不可重复读,但并不能完全避免幻读。
3. 幻读(Phantom Read)
定义:幻读发生在当一个事务重新执行一个查询时,由于其他事务的并发插入操作,导致查询结果中出现了新的行(即“幻影”行)。
场景:事务A在两次查询之间,事务B向查询范围中插入了新的行并提交。当事务A再次执行相同的查询时,会发现新的行,即查询结果集发生了变化。
避免方式:将事务的隔离级别设置为串行化(Serializable),可以避免幻读的发生。然而,串行化会极大地降低并发性能,因为事务只能串行执行。在MySQL中,即使使用可重复读隔离级别,通过索引锁定等技术也可以在一定程度上避免幻读,但这并不是完全可靠的。
总结来说,脏读、不可重复读和幻读是数据库并发事务中可能遇到的问题,它们与事务的隔离级别密切相关。通过选择合适的隔离级别,可以在保证数据一致性和完整性的同时,尽量提高数据库的并发性能。
7.MySQL中的MVCC机制
MySQL中的MVCC(Multi-Version Concurrency Control,多版本并发控制)机制是一种用于提高数据库并发性能的技术,它通过维护数据的多个版本来实现事务的隔离性,从而允许读写操作同时进行,而无需加锁。
一、MVCC的作用
-
提高数据库的并发性能:通过无锁的方式处理读写冲突,使得读操作不会阻塞写操作,写操作也不会阻塞读操作,从而大大提高了数据库的并发性能。
-
降低死锁的风险:由于无需使用显式锁来进行并发控制,MVCC机制可以在很大程度上降低死锁的风险。
-
实现事务的隔离性:MVCC机制通过维护数据的多个版本来保证事务的隔离性,使得在同一事务内多次查询返回的结果是一致的。
二、MVCC的实现原理
MVCC机制在MySQL中主要通过以下三个组件来实现:
-
Undo Log(回滚日志):
-
作用:记录数据修改前的版本信息,用于事务回滚和数据恢复。
-
类型:包括插入(Insert)Undo Log和更新(Update)Undo Log。插入Undo Log在事务提交后可直接删除,而更新Undo Log需要等待purge线程进行最终的删除。
-
版本链:多个事务对同一行记录进行更新会产生多个历史版本,这些版本通过回滚指针(roll_pointer)串联起来,形成Undo Log版本链。
-
-
Read View(一致性视图):
-
生成时机:在事务执行快照读(如简单的SELECT查询)时生成,用于判断数据的可见性。
-
组成:包括创建Read View时所有未提交事务的ID数组(min_trx_id表示最小ID,m_ids表示事务ID数组)、已提交的最大事务ID(max_trx_id)以及创建Read View的事务ID(creator_trx_id)。
-
作用:根据Read View中的信息,结合Undo Log版本链,判断哪些版本的数据对当前事务可见。
-
-
隐藏字段:
-
DB_TRX_ID:6字节的事务ID,用于记录每次事务对聚簇记录进行修改时的事务ID。
-
DB_ROLL_PTR:7字节的回滚指针,指向对应某行记录的上一个版本,在Undo Log中使用。
-
DB_ROW_ID:6字节的隐藏主键,如果表中没有主键,InnoDB会自动生成单调递增的隐藏主键。
-
三、MVCC的可见性判断规则
当查询一条数据时,系统会按照以下规则判断数据的可见性:
-
如果当前Undo Log的版本的trx_id < Read View的min_trx_id,说明该版本对应的事务在生成Read View之前已经提交,因此该版本的数据对当前事务可见。
-
如果当前Undo Log的版本的trx_id ≥ Read View的max_trx_id,说明该版本对应的事务在生成Read View之后才开始,因此该版本的数据对当前事务不可见。
-
如果当前Undo Log的版本的trx_id在[min_trx_id, max_trx_id)范围内,则需要进一步判断:
-
如果trx_id在m_ids中,说明版本对应的事务未提交,因此该版本的数据对当前事务不可见。
-
如果trx_id不在m_ids中,说明版本对应的事务已经提交,因此该版本的数据对当前事务可见。
-
四、MVCC的应用场景
MVCC机制在MySQL中主要用于实现快照读(Snapshot Read),即读取数据的某个历史版本,而不是最新版本。快照读在默认情况下不会加锁,因此可以大大提高数据库的并发性能。而当前读(Current Read)则是一种加锁的操作,会读取数据的最新版本,并对其进行加锁,以保证数据的一致性。
综上所述,MySQL中的MVCC机制是一种高效的并发控制机制,它通过维护数据的多个版本来实现事务的隔离性,从而允许读写操作同时进行,大大提高了数据库的并发性能。
8.MySQL中的锁
MySQL中的锁是用来管理对数据库中数据的并发访问的一种机制。根据不同的分类标准,MySQL中的锁可以分为多种类型。以下是一些主要的锁类型及其特点:
一、按锁定的粒度或范围分类
-
全局锁
-
定义:对整个数据库实例加锁,限制除了超级用户外的所有查询和修改操作。
-
使用场景:一般用于备份、恢复等操作。例如,使用
FLUSH TABLES WITH READ LOCK
命令可以开启全局锁,让整个数据库实例处于只读状态。 -
注意:全局锁对数据库的并发性影响较大,因此在实际应用中应谨慎使用。
-
-
表锁
-
定义:对整个表加锁,其他连接无法修改或读取(取决于锁的类型)该表的数据,但可以对其他表进行操作。
-
类型:
-
共享锁(S锁/读锁):允许多个事务同时读取同一个表的数据,但不允许修改。
-
排他锁(X锁/写锁):只允许一个事务对表进行写操作,其他事务既不能读也不能写。
-
-
使用场景:在MyISAM等不支持行级锁的存储引擎中,表锁是主要的锁机制。
-
-
行锁
-
定义:对单个行加锁,只锁定需要修改的数据行,其他行可以被同时修改或读取。
-
类型:
-
记录锁(Record Lock):直接锁定索引记录。
-
间隙锁(Gap Lock):锁定索引记录之间的间隙,防止其他事务插入数据。间隙锁的目的是在RR级别下,防止幻读,幻读的产生是当前事务多次的查询结果数量上不一致,间隙锁的目的就是保证当前范围内的数据不会被更改,所以它会锁住某些个区间的数据。
-
临键锁(Next-Key Lock):记录锁和间隙锁的组合,锁定一个范围,并包含记录本身。
-
-
使用场景:在InnoDB等支持行级锁的存储引擎中,行锁是提高并发性能的重要手段。
-
-
元数据锁(MDL)
-
定义:锁定数据库对象的元数据,如表结构,用于保证数据定义的一致性。
-
使用场景:在DDL操作(如ALTER TABLE)期间,会自动加MDL锁,防止DDL和DML操作之间的冲突。
-
二、按锁的模式分类
-
共享锁(Shared Lock, S锁)
-
定义:允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。
-
SQL语句:
SELECT ... LOCK IN SHARE MODE;
-
-
排他锁(Exclusive Lock, X锁)
-
定义:允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。
-
SQL语句:
SELECT ... FOR UPDATE;
-
三、其他锁
-
意向锁(Intention Lock)
-
定义:表级锁,表明事务打算在表中的行上加排他锁或共享锁。分为意向共享锁(IS)和意向排他锁(IX)。
-
作用:意向锁是InnoDB自动加的,无需人工干预,主要用于实现行锁和表锁之间的兼容。
-
-
乐观锁和悲观锁
-
乐观锁:假设冲突不会发生,只在数据提交更新时检查是否有冲突。
-
悲观锁:假设冲突总会发生,因此对数据加锁以防止冲突。
-
注意:这两种锁并不是MySQL数据库本身的锁机制,而是并发控制的思想。
-
四、总结
MySQL中的锁类型繁多,包括全局锁、表锁、行锁、元数据锁等,每种锁都有其特定的使用场景和优缺点。在实际应用中,需要根据具体的业务需求和数据访问模式来选择合适的锁策略,以保证数据的一致性和并发性能。同时,还需要注意锁的粒度、锁冲突、死锁等问题,合理设计和管理锁可以提高数据库的并发性能。
9.MySQL中常见的存储引擎
MySQL中常见的存储引擎包括多种,每种存储引擎都有其特定的特点和适用场景。以下是一些常见的MySQL存储引擎及其特点:
1. InnoDB
-
特点:
-
支持事务处理(Transaction Processing):具有提交(COMMIT)和回滚(ROLLBACK)能力,能确保数据的完整性和一致性。
-
支持行级锁定(Row-level Locking):与MyISAM的表级锁定相比,行级锁定可以大幅度提高多用户并发操作的性能。
-
支持外键(Foreign Keys):外键约束保证了一个表中的数据必须满足另一个表里的参照完整性要求。
-
支持崩溃恢复能力(Crash Recovery Capabilities):通过日志文件来恢复数据。
-
支持MVCC(多版本并发控制):提高数据库的并发性能。
-
适用于处理大量短期事务,是MySQL的默认存储引擎(从MySQL 5.5版本开始)。
-
-
适用场景:
-
需要事务支持的业务,如银行、金融等领域。
-
高并发的读写操作。
-
需要外键支持的场景。
-
2. MyISAM
-
特点:
-
不支持事务处理,也不支持行级锁和外键。
-
访问速度快,对事务完整性没有要求。
-
支持全文索引(FULLTEXT),适合进行全文搜索。
-
表级锁定(Table-level Locking):在写操作时会锁定整个表,因此并发性能较低。
-
数据文件和索引文件是分离的(.MYD用于存储数据,.MYI用于存储索引)。
-
-
适用场景:
-
读多写少的业务场景,如Web应用中的用户信息表。
-
不需要事务支持,且主要进行SELECT、INSERT操作的场景。
-
3. MEMORY(HEAP)
-
特点:
-
使用内存中的数据来创建表,所有数据都存储在内存中,因此访问速度非常快。
-
默认使用哈希索引,也可以指定使用B树索引。
-
不支持事务处理和外键。
-
表级锁定。
-
服务器重启后数据会丢失,因此不适合存储重要数据。
-
-
适用场景:
-
临时数据存储,如缓存。
-
频繁访问且数据量不大的场景。
-
4. Archive
-
特点:
-
专门用于存储归档数据,如日志信息。
-
压缩存储空间,但不支持索引和事务。
-
插入速度非常快,但查询性能较差。
-
-
适用场景:
-
归档数据的存储,如历史记录、日志等。
-
5. CSV
-
特点:
-
存储CSV格式的数据,适合导入和导出数据。
-
不支持索引和事务。
-
-
适用场景:
-
需要将MySQL中的数据导出为CSV格式,或者从CSV文件导入数据的场景。
-
6. NDB Cluster(MySQL Cluster)
-
特点:
-
基于共享存储的集群存储引擎,支持高可用性和高性能的数据存储。
-
适用于需要高可用性和高并发性的分布式数据库应用。
-
-
适用场景:
-
分布式数据库系统,如需要跨多个服务器节点共享数据的场景。
-
7. Federated
-
特点:
-
允许将数据存储在远程MySQL服务器上,实现分布式数据库应用。
-
-
适用场景:
-
需要跨多个MySQL服务器节点进行数据访问和管理的场景。
-
总结
MySQL提供了多种存储引擎,每种存储引擎都有其独特的特性和适用场景。在选择存储引擎时,需要根据具体的应用需求、数据特性以及性能要求来综合考虑。同时,需要注意的是,MySQL的不同版本支持的存储引擎可能会有所不同,因此在选择存储引擎时还需要考虑MySQL的版本兼容性。
相关文章:

【面试题】MySQL(第一篇)
1. MySQL是什么? MySQL是一种开源的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据管理。MySQL具有高性能、可靠性、可扩展性和兼容性等特点,广泛应用于Web应用开发中。 2. …...

SQL Server集成服务(SSIS):数据集成的瑞士军刀
SQL Server集成服务(SSIS):数据集成的瑞士军刀 在数据仓库和大数据处理领域,SQL Server集成服务(SSIS)扮演着至关重要的角色。作为微软SQL Server套件的一部分,SSIS提供了一套强大的工具&#…...

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs (上)
一、自定义组件 1、自定义组件 自定义组件,最基础的结构如下: Component struct Header {build() {} } 提取头部标题部分的代码,写成自定义组件。 1、新建ArkTs文件,把Header内容写好。 2、在需要用到的地方,导入…...

值传递与引用传递:理解Java中的参数传递机制
值传递与引用传递:理解Java中的参数传递机制 1、值传递(Call by Value)2、引用传递(Call by Reference)3、总结 💖The Begin💖点点关注,收藏不迷路💖 值传递和引用传递的…...

Qt常用基础控件总结—带边框的部件(QFrame和QLabel)
带边框的部件 框架控件QFrame类 QFrame类介绍 QFrame 类是带有边框的部件的基类,带边框部件的特点是有一个明显的边框,QFrame类就是用来实现边框的不同效果的(把这种效果称为边框样式),所有继承自 QFrame 的子类都可以使用 QFrame 类实现的效果。 部件通常是矩形的(其他…...

太多项会毁了回归
「AI秘籍」系列课程: 人工智能应用数学基础 人工智能Python基础 人工智能基础核心知识 人工智能BI核心知识 人工智能CV核心知识 多项式回归的过度拟合及其避免方法 通过添加现有特征的幂,多项式回归可以帮助你充分利用数据集。它允许我们甚至使用简…...

python的魔法方法
python类中的self是什么? 对象的方法都会有一个self参数,类比于c,self就相当于c的this指针。 由一个类可以生成无数个对象,当一个对象的方法被调用时,对象会讲自身的引用作为第一个参数传给该方法,那么pyt…...

[Vue3 + TS + Vite] 获取网页选中内容的字符串格式或HTML格式
获取网页选中内容的字符串格式 let selected_text_by_mouse: any// 获取选中的文字 const mouse_selected_text(event:MouseEvent)>{const selection window.getSelection();if(selection && selection.rangeCount > 0){const content selection.toString();s…...

线程安全的原因及解决方法
什么是线程安全问题 线程安全问题指的是在多线程编程环境中,由于多个线程共享数据或资源,并且这些线程对共享数据或资源的访问和操作没有正确地同步,导致数据的不一致、脏读、不可重复读、幻读等问题。线程安全问题的出现,通常是…...

微信零钱明细删除了还能恢复吗?图文教程解析
在日常使用微信支付的过程中,查看零钱明细是管理个人财务的一项重要操作。然而,有时候我们可能会不小心删除了这些明细,导致无法追踪资金流动和消费记录。那么,微信零钱明细删除了还能恢复吗?这是许多用户关心的问题。…...

mp4视频太大怎么压缩不影响画质,mp4文件太大怎么变小且清晰度高
在数字化时代,我们常常面临视频文件过大的问题。尤其是mp4格式的视频,文件大小往往令人望而却步。那么,如何在不影响画质的前提下,有效地压缩mp4视频呢?本文将为您揭秘几种简单实用的压缩技巧。 在分享和存储视频时&am…...

【线程同步-2】
同步方法及同步块 接上期三大不安全案例,本期将介绍同步方法和同步块,以期达到安全的目的。 车站买票:加入了synchronized 同步方法 package syn; //不安全的买票 //线程不安全,有负数 public class UnsafeBuyTicket {publi…...

【别再为可视化工具付费了!】财务报表免费制作软件,这款免费可视化工具的功能超乎想象
会计工作中,关键一步就是把那些繁杂的财务数据整理成清晰易懂的财务报表,这就像是把一堆拼图块变成一幅完整的图画。山海鲸可视化这款免费工具,支持实时数据刷新,能够随时随地更新你的财务数据,确保你拿到的永远是最新…...

【HTML入门】第五课 - 加粗和倾斜的字体们
这一小节,我们说一些常用的HTML文本格式化的标签知识。可能你会觉得HTML知识比较零散,有好多标签。没错,就是比较零散,标签比较多。正式这些形形色色的HTML标签们,组成了丰富多彩的网页元素。 但是在刚学习的时候&…...

解决树形表格 第一列中文字没有对齐
二级分类与一级分类的文字没有对齐 <el-table:data"templateStore.hangyeList"style"width: 100%"row-key"id":tree-props"{ children: subData, hasChildren: hasChildren }" ><el-table-column prop"industryCode&quo…...

三级_网络技术_09_IP地址规划技术
1.某企业产品部的IP地址块为211.168.15.192/26,市场部的为211.168.15.160/27,财务部的为211.168.15.128/27,这三个地址块经聚合后的地址为()。 211.168.15.0/25 211.168.15.0/26 211.168.15.128/25 211.168.15.128/26 2.若某大学分配给计…...

力扣1878.矩阵中最大的三个菱形和
力扣1878.矩阵中最大的三个菱形和 斜前缀和 遍历矩阵元素,同时求当前点左下右下两位置的前缀和枚举每个菱形中心,遍历边长 int sum1[101][101];int sum2[101][101];class Solution {public:vector<int> getBiggestThree(vector<vector<in…...

ELB和VPC是云计算领域中的两个术语,通常与Amazon Web Services (AWS)相关联
ELB 和 VPC 是云计算领域中的两个术语,通常与亚马逊云服务(AWS)相关: 1. **ELB (Elastic Load Balancer)**: - 这是AWS提供的一种服务,用于自动分配进入应用程序的流量,以实现高可用性和容错…...

YOLO-World实时开集检测论文阅读
论文:《YOLO-World: Real-Time Open-Vocabulary Object Detection》 代码:https://github.com/AILab-CVC/YOLO-World 1.Abstract 我们介绍了YOLO World,这是一种创新的方法,通过在大规模数据集上进行视觉语言建模和预训练&#…...

LLM - 词向量 Word2vec
1. 词向量是一个词的低维表示,词向量可以反应语言的一些规律,词意相近的词向量之间近乎于平行。 2. 词向量的实现: (1)首先使用滑动窗口来构造数据,一个滑动窗口是指在一段文本中连续出现的几个单词&#x…...

Tileserver GL中glyphs的使用
在Tileserver GL中,glyphs(字形)是用来渲染矢量切片地图中的文本标签的重要组件。它们定义了在地图上显示的字体和文字的具体形状。详细了解glyphs在Tileserver GL中的工作原理,可以帮助我们更好地配置和使用该服务。以下是关于Ti…...

uniapp自动升级
一、创建云服务空间(https://unicloud.dcloud.net.cn) 云空间用于关联需要版本控制升级的项目,如果已拥有云空间则省略此步骤。 二、搭建 uni升级中心 - 后台管理系统(升级中心 uni-upgrade-center - Admin) uni-adm…...

java Pair怎么使用
文章目录 1. 简介2. Pair类的来源3. 如何使用Pair类4. Pair类的实际应用5. Pair类的优点和缺点 1. 简介 什么是Pair Pair是一个通用的数据结构,用于存储一对关联的对象,也就是两个元素。这两个元素可以是任何类型,并且它们之间没有特定的层次…...

数据库doris中的tablet底层解析
在Doris中,tablet(数据片)是数据存储和管理的最小单元。理解tablet的底层原理有助于更好地理解Doris的高可用性、负载均衡和查询优化等特性。 Tablet 的概念 Tablet:Tablet是Doris中用于存储数据的最小物理单元。每个tablet通常对应于一个数据分区和一个分桶组合的子集。…...

江苏高防服务器都有哪些优势?
江苏高防服务器所针对的应用群体是不同的,高防服务器与普通服务器的应用效果和功能上是有着很大的差别,所以企业与用户在进行挑选高防服务器时,会更加看重服务器的质量与服务效果,本文就来聊一下江苏高防服务器的优势有哪些吧&…...

Pytest单元测试系列[v1.0.0][Pytest基础]
Pytest安装与配置 和Unittest一样,Pytest是另一个Python语言的单元测试框架,与Unittest相比它的测试用例更加容易编写、运行方式更加灵活、报错信息更加清晰、断言写法更简洁并且它可以运行有unittest和nose编写的测试用例。 Pytest 安装 启动命令行&…...

C/C++服务器基础(网络、协议、数据库)
Socket Socket是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。它可以看成是两个网络应用程序进行通信时,各自通信连接中的端点。Socket上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用…...

Mysql系列-Binlog主从同步
原文链接:https://zhuanlan.zhihu.com/p/669450627 一、主从同步概述 mysql主从同步,即MySQL Replication,可以实现将数据从一台数据库服务器同步到多台数据库服务器。MySQL数据库自带主 从同步功能,经过配置,可以实现基于库、表…...

java设计模式(六)——原型模式
一、模式介绍 原型模式: 创建型模式之一,就是基于原型创建对象,也就是一个对象的产生可以不由零起步, 直接从一个已经具备一定雏形的对象克隆,然后再修改为所需要的对象。节约创建对象时间。 使用场景 如果对象创建成本比较大,例如某个对象里面的数据需要访问数据库才能…...

arm (exti中断)
src/key_it.c 1 #include "key_it.h"2 3 //按键1中断配置4 void key1_config()5 {6 //RCC章节7 //1:使能gpio f8 RCC->MP_AHB4ENSETR | (0x1<<5);9 //因为exti和gic属于芯片内部 所以无需使能10 11 //GPIO章节12 //1:将…...