MySQL 8.0 OCP认证精讲视频、环境和题库之四 多实例启动 缓存、事务、脏读
一、配置第一个mysqld服务
1、编辑选项文件,指定以下选项:
[mysqld]
basedir=/mysql80
datadir=/mysql80/data1
socket=/mysql80/data1/mysqld.sock
pid-file=/mysql80/data1/mysqld.pid
log-error=/mysql80/data1/mysqld.log
2、初始化
/mysql80/bin/mysqld --defaults-file=/mysql80/mysqld.cnf --initialize
3、启动mysqld服务
/mysql80/bin/mysqld--defaults-file=/mysql80/mysqld.cnf&
4、查看初始密码,登录,修改出初始密码
mysqi -uroot -p'As%&sT9xX/wp' -h127.0.0.1 -P3307
mysql>alter user user() identifiedby 'Ora_123';
5、创建一个统一的用户,比如 multi_user ,密码相同,并指定shutdown权限
mysql>create user multi_user@localhost identifiedby 'Ora_123';
mysql>grant shutdown on *.* to multi_user@localhost;
6、 关闭mysqld
/mysql80/bin/mysqldadmin -u multi_user -h 127.0.0.1 -P 3307 shutdown
7、 屏蔽掉mysqld选
#[mysqld]
#basedir=/mysgl80
#datadir=/mysql8o/datal
socket=/mysql80/datal/mysqld.sock
#pid-file=/mysql80/data1/mysqld.pid
#log-error=/mysql80/data1/mysqld.log
#port=3307
二、配置第二个mydqld服务
重复上述步骤1-7,指定不同的配置;
三、配置第三个mydqld服务
重复上述步骤1-7,指定不同的配置;
#[mysqld]
#basedir=/mysgl80
#datadir=/mysql8o/datal
#socket=/mysql80/datal/mysqld.sock
#pid-file=/mysql80/data1/mysqld.pid
#log-error=/mysql80/data1/mysqld.log
#port=3307
#[mysqld]
#basedir=/mysql80
#datadir=/mysql80/data2
#socket=/mysql80/data2/mysgld.sock
#pid-file=/mysql80/data2/mysqld.pid
#log-error=/mysql80/data2/mysqld.log
#port=3308
#[mysqld]
#basedir=/mysql80
#datadir=/mysql80/data3
#socket=/mysql80/data3/mysgld.sock
#pid-file=/mysql80/data3/mysqld.pid
#log-error=/mysql80/data3/mysqld.log
#port=3309
四、取消前面的#;
[mysqld]
basedir=/mysgl80
datadir=/mysql8o/datal
socket=/mysql80/datal/mysqld.sock
pid-file=/mysql80/data1/mysqld.pid
log-error=/mysql80/data1/mysqld.log
port=3307
[mysqld]
basedir=/mysql80
datadir=/mysql80/data2
socket=/mysql80/data2/mysgld.sock
pid-file=/mysql80/data2/mysqld.pid
log-error=/mysql80/data2/mysqld.log
port=3308
[mysqld]
basedir=/mysql80
datadir=/mysql80/data3
socket=/mysql80/data3/mysgld.sock
pid-file=/mysql80/data3/mysqld.pid
log-error=/mysql80/data3/mysqld.log
port=3309
[mysql_miti]
mysqld=/mysql80/bin/mysqld
mysqladmin=/mysql80/bin/mysqladmin
user= multi_user
五、修改选项名称
[mysqld1]
basedir=/mysgl80
datadir=/mysql8o/datal
socket=/mysql80/datal/mysqld.sock
pid-file=/mysql80/data1/mysqld.pid
log-error=/mysql80/data1/mysqld.log
port=3307
[mysqld]
basedir=/mysql80
datadir=/mysql80/data2
socket=/mysql80/data2/mysgld.sock
pid-file=/mysql80/data2/mysqld.pid
log-error=/mysql80/data2/mysqld.log
port=3308
[mysqld3]
basedir=/mysql80
datadir=/mysql80/data3
socket=/mysql80/data3/mysgld.sock
pid-file=/mysql80/data3/mysqld.pid
log-error=/mysql80/data3/mysqld.log
port=3309
[mysql_miti]
mysqld=/mysql80/bin/mysqld
mysqladmin=/mysql80/bin/mysqladmin
user= multi_user
六、调用mysqld_multi命令,对多个mysqld服务统一地进行启动,关闭,查看状态
七、修改bug
/usr/local/mysql/bin/mysqld_multi有Bug
# vi /usr/local/mysql/bin/mysqld_multi
sub defaults_for_group
{
my ($group) = @_;
return () unless $my_print_defaults_exists;
my $com= join ' ', 'my_print_defaults', @defaults_options, $group;
my @defaults = `$com`;
chomp @defaults;
return @defaults;
}
改 my $com= join ' ', 'my_print_defaults -s', @defaults_options, $group;
八、缓存buffer_pool
join_buffer_size
sort_buffer_size
mysql> show variables like '%sort%';
+--------------------------------+---------------------+
| Variable_name | Value |
+--------------------------------+---------------------+
| innodb_disable_sort_file_cache | OFF |
| innodb_ft_sort_pll_degree | 2 |
| innodb_sort_buffer_size | 1048576 |
| max_length_for_sort_data | 4096 |
| max_sort_length | 1024 |
| myisam_max_sort_file_size | 9223372036853727232 |
| myisam_sort_buffer_size | 8388608 |
| sort_buffer_size | 262144 |
+--------------------------------+---------------------+
8 rows in set (0.00 sec)
mysql> show variables like 'innodb_buffer_pool_size';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
mysql>
#innodb_buffer_pool_size | 134217728 生产环境偏小。
mysql> show variables like '%buffer_pool%';
+-------------------------------------+----------------+
| Variable_name | Value |
+-------------------------------------+----------------+
| innodb_buffer_pool_chunk_size | 134217728 |
| innodb_buffer_pool_dump_at_shutdown | ON |
| innodb_buffer_pool_dump_now | OFF |
| innodb_buffer_pool_dump_pct | 25 |
| innodb_buffer_pool_filename | ib_buffer_pool |
| innodb_buffer_pool_instances | 1 |
| innodb_buffer_pool_load_abort | OFF |
| innodb_buffer_pool_load_at_startup | ON |
| innodb_buffer_pool_load_now | OFF |
| innodb_buffer_pool_size | 134217728 |
+-------------------------------------+----------------+
10 rows in set (0.00 sec)
buffer_pool的设置
变量innodb_buffer_pool_size:指定buffer_size的大小 。
变量innodb_buffer_pool_chunk_size:在调整buffer_pool大小限制时的基本单位;
当增加或减少innodb_buffer_pool_size时,操作是chunk_size执行的。区块大小由innodb_buffer_pool_Chunk_size配置选项定义,默认值为128M=134217728b。
innodb_buffer_pool_size大小必须始终等于或等于innodb_Buffer_pool_chunk_size*innodb_Buffer_pool_instances的倍数。
mysql> show variables like '%innodb_buffer_pool_instances%';
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| innodb_buffer_pool_instances | 1 |
+------------------------------+-------+
1 row in set (0.00 sec)
如果将innodb_buffer_pool_size配置为不等于innodb_buffer_pool_chunk_size*innodb_uffer_pool_instances或其整数倍的值,
则缓冲池大小将自动调整为等于innodd_buffer_pool_chunk_size*innodb_pool_instances的值或其倍数。
假设
innodb_buffer_pool_size设置为8G,innodl_buffer_poor_instances设置为16。innodb_buffer_pool_chunk_size为128M,为默认值。
可以判断
innodd_buffer_pool_chunk_size*innodb_pool_instances=128M*16= 2^7*2^4=2*2^10=2G
( innodb_buffer_pool_size=8)/(innodd_buffer_pool_chunk_size*innodb_pool_instances=2G)=4倍
因此innodb_buffer_pool_size-8G是有效值
8G是一个有效的innodb_buffer_pool_size值,因为8G是innodb_buffer_pool_instance=16*innodb_uffer_pool_chunk_size=128M的倍数,即2G。
再假设
在本例中,innodb_buffer_pool_size设置为9G(刚才是8G),innodl_buffer_pool_instances设置为16。innodb_buffer_pool_chunk_size为128M,为默认值。
innodb_buffer_poor_instances*innodb_buffer_pool_chunk_size=16*128M=2G ,9G/2g=4.5倍(访问时跨chunk访问,所以慢)
因此mysql向上取整调整为10G。
innodb_buffer_pool_instances 其值为>=0,<=64
innodb_buffer_pool被划分为的区域数。对于innodb_buffer_pool在1GB 字节范围内的系统,将缓冲池划分为单独的实例,
可以通过减少不同线程读取和写入缓存页面时的争用来提高并发性。此选项仅在将innodb_buffer_pool_size设置为1GB或更大时生效。
缓冲池的总大小在所有缓冲池中划分。为了获得最佳效率,请指定innodb_buffer_pool_instances和innodb_buffer_pool_size的组合,以便每个缓冲池实例至少为1GB。
On all other platforms, the default value is 8 when innodb_buffer_pool_size is greater than or equal to 1GB. Otherwise, the default is 1.
mysql> show variables like 'innodb_buffer_pool_size';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
mysql>
mysql> select 134217728 /1024/1024;
+----------------------+
| 134217728 /1024/1024 |
+----------------------+
| 128.00000000 | ###128MB
+----------------------+
1 row in set (0.00 sec)
mysql>
mysql> show variables like 'innodb_buffer_pool_chunk_size';
+-------------------------------+-----------+
| Variable_name | Value |
+-------------------------------+-----------+
| innodb_buffer_pool_chunk_size | 134217728 |
+-------------------------------+-----------+
1 row in set (0.00 sec)
mysql> show variables like '%innodb_buffer_pool_instances%';
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| innodb_buffer_pool_instances | 1 |
+------------------------------+-------+
1 row in set (0.00 sec)
mysql>
实践
MySQL :: MySQL 8.0 Reference Manual :: 15.8.3.1 Configuring InnoDB Buffer Pool Size
变量innodb buffer pool size:指定buffer poole的大小
变量innodb_buffer_pool_chunk_size:在洞整buffer pool大小时的基本单位
变量innodb buffer pool_instances:把innodb buffer分成若干部分,分别管理,仅当innodb buffer_pool size的值大于1GB时生效
实验:buffer pool的设道
1、查看上述变量的值
2、通过set命令将innodb buffer pool size设置为129M,查看实际大小
3、修改选项文件,指定以下选项:
innodb buffer pool chunk size=64M
innodb_buffer_pool_size=256M
重新启动nysqld
4、 通过set命令修改innodb buffer pool size为300M,查看实际大小
处理:
1 、
mysql> show variables like 'innodb_buffer_pool_size%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.01 sec)
mysql> show variables like 'innodb_buffer_pool_chunk%';
+-------------------------------+-----------+
| Variable_name | Value |
+-------------------------------+-----------+
| innodb_buffer_pool_chunk_size | 134217728 |
+-------------------------------+-----------+
1 row in set (0.00 sec)
mysql> select 134217728/1024/1024 ;
+---------------------+
| 134217728/1024/1024 |
+---------------------+
| 128.00000000 |
+---------------------+
1 row in set (0.00 sec)
2、
mysql> select 129*1024*1024;
+---------------+
| 129*1024*1024 |
+---------------+
| 135266304 |
+---------------+
1 row in set (0.00 sec)
mysql> set global innodb_buffer_pool_size=135266304;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> show variables like 'innodb_buffer_pool_size%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 268435456 |
+-------------------------+-----------+
1 row in set (0.00 sec)
mysql> select 268435456/1024/1024;
+---------------------+
| 268435456/1024/1024 |
+---------------------+
| 256.00000000 | ##预期129MB ,实际256MB,是向上取整数倍速128MB
+---------------------+
1 row in set (0.00 sec)
3、
systemctl stop mysql
vi /etc/my.cnf
[mysqld]
datadir=/data/mysql/data/
socket=/data/mysql/mysql.sock
innodb_buffer_pool_chunk_size=64M
innodb_buffer_pool_size=256M
systemctl start mysql
mysql> show variables like 'innodb_buffer_pool_chunk_size' ;
+-------------------------------+----------+
| Variable_name | Value |
+-------------------------------+----------+
| innodb_buffer_pool_chunk_size | 67108864 |
+-------------------------------+----------+
1 row in set (0.01 sec)
mysql> show variables like 'innodb_buffer_pool_size' ;
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 268435456 |
+-------------------------+-----------+
1 row in set (0.00 sec)
4、
mysql> set global innodb_buffer_pool_size=314572800;
mysql> show variables like 'innodb_buffer_pool_size';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 335544320 |
+-------------------------+-----------+
1 row in set (0.00 sec)
mysql> select 335544320/1024/1024;
+---------------------+
| 335544320/1024/1024 |
+---------------------+
| 320.00000000 |
+---------------------+
1 row in set (0.00 sec)
mysql>
# /etc/my.cnf 中的chunk_size=64MB,300MB/64MB ~4.6875 ;向上取整=5 倍
所以 64MB*5=320MB;
九、脏读及刷新
变量innodb_max_dirty_pages_pct:
innoDB在后台执行某些任务,包括从缓冲池中清除脏页。脏页是指那些已被修改但尚未写入磁盘上的数据文件的页。
在MySQL 8.0中,缓冲池刷新是由页面清理线程执行的。页面清理线程的数量由innodb_page_cleaners变量控制,该变量的默认值为4。
但是,如果页面清理线程的数量超过缓冲池实例的数量,innodb_page_cleaners会自动设置为与innodb_buffer_pool_instances相同的值。
当脏页的百分比达到innodb_max_dirty_pages_pct_lwm变量定义的低水位标记值时,启动缓冲池刷新。默认的低水位标记是缓冲池页面的10%。innodb_max_dirty_pages_pct_lwm值为0将禁用这种早期刷新行为。
innodb_max_dirty_pages_pct_lwm阈值的目的是控制缓冲池中脏页的百分比,并防止脏页的数量达到innodb_ax_dirty_pages_pct变量定义的阈值,该变量的默认值为90。如果缓冲池中脏页面的百分比达到InnoDB_max_dirty_pages_pct阈值,InnoDB会主动刷新缓冲池页面。
配置innodb_max_dirty_pages_pct_lwm时,该值应始终低于innodb_ax_dirty_pages_pct值。
变量innodb_flush_neighbors:
允许对缓冲池刷新行为进行微调:
innodb_flush_neighbors变量定义从缓冲池中刷新页面是否也会刷新同一范围中的其他脏页面。
默认设置0:
将禁用innodb_flush_neighbors。相同范围内的脏页不会被刷新。对于寻道时间不是重要因素的非旋转存储(SSD)设备,建议使用此设置。
设置为1:
将在同一范围内刷新连续的脏页。
设置为2:
会在同一范围内刷新脏页。
innodb_LRU_scan_depth变量为每个缓冲池实例指定页面清理器线程在缓冲池LRU列表中搜索脏页面的深度。这是页面清理线程每秒执行一次的后台操作。
innodb_flush_neighbors和innodb_LRU_scan_depth变量主要用于写密集型工作负载。
小于默认值的设置通常适用于大多数工作负载。明显高于必要值的值可能会影响性能。只有在典型工作负载下有空闲I/O容量时,才考虑增加值。
相反,如果写密集型工作负载使I/O容量饱和,请降低该值,尤其是在缓冲池很大的情况下。
十、事务
MySQL :: MySQL 8.0 Reference Manual :: 13.3.7 SET TRANSACTION Statement
事务(transaction):一系列SQL的集合,整体执行;要 么全部成功,要么全部失败;
事务的属性:ACID
A:原子性
C: 一致性
I:独立性、并发事务,隔离性
D:持久性
事务的处理:
commit;
rollback;
事务的形式:
1、多条DML的集合 insert update delete 需要手工提交
2、单条DDL create drop alter truncate 立即提交
3、单条DCL grant revoke
变量autocommit:仅针对第一种事务
start TRANSACTION
update...
insert ...
delete ...
commit/rollback
相关文章:
MySQL 8.0 OCP认证精讲视频、环境和题库之四 多实例启动 缓存、事务、脏读
一、配置第一个mysqld服务 1、编辑选项文件,指定以下选项: [mysqld] basedir/mysql80 datadir/mysql80/data1 socket/mysql80/data1/mysqld.sock pid-file/mysql80/data1/mysqld.pid log-error/mysql80/dat…...

对代码感兴趣 但不擅长数学怎么办——《机器学习图解》来救你
目前,该领域中将理论与实践相结合、通俗易懂的著作较少。机器学习是人工智能的一部分,很多初学者往往把机器学习和深度学习作为人工智能入门的突破口,非科班出身的人士更是如此。当前,国内纵向复合型人才和横向复合型人才奇缺;具有…...

【EI会议征稿】第三届大数据、信息与计算机网络国际学术会议(BDICN 2024)
第三届大数据、信息与计算机网络国际学术会议(BDICN 2024) 2024 3rd International Conference on Big Data, Information and Computer Network 第三届大数据、信息与计算机网络国际学术会议(BDICN 2024)定于2024年1月12-14日在…...

【Arduino+ESP32+腾讯云+sg90】强制门户+腾讯云控制开关灯
作者有话说 博主对于Arduino开发并没有基础,但是为了实现更加方便的配网,这几天一直在尝试用ESP32-12F(因为手头刚好有一个,其他的也可以)来做远程开关灯!不知道大家是否注意到,上一篇利用STM32…...

windows中elasticsearch7中添加用户名密码验证
1.找到elsatic的bin目录输入cmd 2.生成ca证书 输入 elasticsearch-certutil ca 在es7根目录生成ca证书,输入密码时直接回车即可,否则后面会报错 Please enter the desired output file [elastic-stack-ca.p12]: #这里直接回车即可 Enter password for…...

linux安装达梦数据库(命令行安装)
安装达梦数据库 创建安装用户 1,创建安装用户组dinstall [rootdmDMServer1 ~]# groupadd -g 12345 dinstallgroupadd : 创建组 -g : 指定组id(GID) 12345: 指定的组名称 dinstall : 组名 2,创建安装用户dmdba [rootdmDMSe…...

Flutter——最详细(CustomScrollView)使用教程
CustomScrollView简介 创建一个 [ScrollView],该视图使用薄片创建自定义滚动效果。 [SliverList],这是一个显示线性子项列表的银子列表。 [SliverFixedExtentList],这是一种更高效的薄片,它显示沿滚动轴具有相同范围的子级的线性列…...

解决容器内deepspeed微调大模型报错
解决容器内deepspeed微调大模型报错:[launch.py:315:sigkill_handler] Killing subprocess 问题描述:解决办法 问题描述: 在容器中用deepspeed微调百川大模型2时,出现上述错误,错误是由于生成容器时,共享内…...

UE 插件模块引用
如Plugons中的模块A想要引用模块B: 1、模块A中的.uplugin文件加入↓ 2、模块A中的.Build.cs文件加入↓ 3、在模块A需要用到模块B的地方直接include 4、重新generate Project 5、重新编译 注意两个模块之间不能循环引用...

python元组、拆包和装包
注意 元组不能修改元素 元组:如果元素为字符串且元素为1个,必须加一个, ********* t1 (aa,) 下标和切片 in not in for ... in ... 元组转为列表 拆包、装包...
1-Docker安装MySQL8.0
1 背景知识记录 1.1 MySQL 的基本配置记录 MySQL的配置文件目录(/etc/mysql): root2dd6033b5c17:/etc/mysql# pwd /etc/mysql root2dd6033b5c17:/etc/mysql# ls conf.d my.cnf my.cnf.fallback MySQL的data文件目录(/var/lib/my…...

配电房智能化改造在加油站等的应用
随着科技的发展和智能化趋势的推进,对加油站配电房进行智能化改造成为了一个必然的选择。智能化改造不仅可以提高加油站的工作效率,减少事故发生率,还可以实现能源的合理利用,提高经济效益。 力安科技加油站智能化改造升级是一种高…...
集准测试-架构真题(五十六)
如果数据库单标即可实现业务功能,采用()方式进行数据交换与处理较为合适。如果通过数据库不同表的连接操作获取数据才能实现业务功能,这时候采用()方式进行数据交换与处理合适。 主动记录数据网关包装器数…...

木与空间的舞蹈:奥地利住宅的独特设计
国外著名设计师,为一位业主设计了一座住宅,附带有附属建筑和有盖的入口,形成了像庭院一样的建筑群。 这座住宅采用了当地的传统建筑风格,有长方形的平面和陡峭的顶棚,与周围的房屋相符。然而,内部设计别具一…...

性能优化-卡顿优化-tarce抓取及分析
性能优化(卡顿分析) 文章目录 一、抓取trace的方法1.使用systrace抓取trace2.使用atrace抓取3.使用Perfetto抓取trace 二、trace文件的分析1.快捷操作1.1 导航操作1.2 快捷操作 2.chrome trace工具分析trace文件3.Prefetto分析trace文件 一、抓取trace的…...
P5740 【深基7.例9】最厉害的学生
题目描述 现有 N N N 名同学参加了期末考试,并且获得了每名同学的信息:姓名(不超过 8 8 8 个字符的仅有英文小写字母的字符串)、语文、数学、英语成绩(均为不超过 150 150 150 的自然数)。总分最高的学…...
Hive引擎MR、Tez、Spark
Hive引擎包括:默认MR、Tez、Spark 不更换引擎hive默认的就是MR。 MapReduce:是一种编程模型,用于大规模数据集(大于1TB)的并行运算。 Hive on Spark:Hive既作为存储元数据又负责SQL的解析优化࿰…...

不写前端代码,curl直接调试sse
不写前端代码,curl直接开两个终端调试sse 过程: 客户端向服务端发送建立连接请求; 服务端向客户端推送内容; 服务端向客户端发送结束信号并结束 注意事项: 只有连接时要求content-type是xxx 其他问题: …...

百分点科技受邀参加“一带一路”国际合作高峰论坛
10月17-18日,第三届“一带一路”国际合作高峰论坛在北京成功举行。作为新一代信息技术出海企业代表,百分点科技董事长兼CEO苏萌受邀出席高峰论坛开场活动——“一带一路”企业家大会,与来自82个国家和地区的企业或机构、有关国际组织、经济机…...

git学习——第4节 时光机穿梭
我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version control system. Git is free software. 现在&…...

深入解析 CAS 操作
一、CAS 的本质:硬件级别的乐观锁 CAS(Compare-And-Swap,比较并交换) 是一种原子操作指令,用于实现对共享变量的无锁并发修改。它是现代多核处理器支持的底层硬件指令,也是构建高效并发数据结构࿰…...

湖北理元理律师事务所:债务咨询中的心理支持技术应用
债务危机往往伴随心理崩溃。世界卫生组织研究显示,长期债务压力下抑郁症发病率提升2.3倍。湖北理元理律师事务所将心理干预技术融入法律咨询,构建“法律方案心理支持”的双轨服务模型。 一、债务压力下的心理危机图谱 通过对服务对象的追踪发现&#x…...
在命令行直接执行可以执行成功,加入crontab定时任务执行shell脚本不成功失败的问题解决方法
今天遇到在命令行直接执行可以执行成功,加入crontab定时任务执行shell脚本却不成功失败的问题,踩坑了很长时间 记录下我的解决方法 原来我的定时任务填写方式: [roottao ~]# crontab -l */10 * * * * /bin/sh /search/index.sh >>/dev/null 2&g…...

windows命令行面板升级Git版本
Date: 2025-06-05 11:41:56 author: lijianzhan Git 是一个 分布式版本控制系统 (DVCS),由 Linux 之父 Linus Torvalds 于 2005 年开发,用于管理 Linux 内核开发。它彻底改变了代码协作和版本管理的方式,现已成为软件开发的事实标准工具&…...

法律大语言模型(Legal LLM)技术架构
目录 摘要 1 法律AI大模型技术架构 1.1 核心架构分层 1.2 法律知识增强机制 2 关键技术突破与对比 2.1 法律专用组件创新 2.2 性能对比(合同审查场景) 3 开发部署实战指南 3.1 环境搭建流程 3.2 合同审查代码示例 4 行业应用与挑战 4.1 典型场景效能提升 4.2 关…...
STM32开发中,线程启动异常问题排查简述
1. 参数传递问题 错误类型:线程属性错误地使用。影响:线程属性(如堆栈大小、优先级)不匹配可能导致线程创建失败或行为异常。验证方法:检查 线程创建的返回值,若为 NULL 则表示线程创建失败。 2. 系统资源…...

【产品业务设计】支付业务设计规范细节记录,含订单记录、支付业务记录、支付流水记录、退款业务记录
【产品业务设计】支付业务设计规范细节记录,含订单记录、支付业务记录、支付流水记录 前言 我为什么要写这个篇文章 总结设计经验生成设计模板方便后期快速搭建 一个几张表 一共5张表; 分别是: 订单主表:jjy_orderMain订单产…...

centos7编译安装LNMP架构
一、LNMP概念 LNMP架构是一种常见的网站服务器架构,由Linux操作系统、Nginx Web服务器、MySQL数据库和PHP后端脚本语言组成。 1 用户请求:用户通过浏览器输入网址,请求发送到Nginx Web服务器。 2 Nginx处理:Nginx接收请求后&…...

RabbitMQ 学习
MQ 的相关概念 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。…...
青少年编程与数学 01-011 系统软件简介 01 MS-DOS操作系统
青少年编程与数学 01-011 系统软件简介 01 MS-DOS操作系统 1. MS-DOS的历史背景1.1 诞生背景1.2 发展历程1.3 与Windows的关系 2. MS-DOS的技术细节2.1 系统架构2.2 启动过程2.3 内存管理2.4 设备驱动程序 3. MS-DOS的用户界面3.1 命令行界面3.2 配置文件 4. MS-DOS的应用程序与…...