Spring WebFlux核心原理
示例代码:https://gitee.com/ixinglan/spring-webflux-demo.git
一、Project Reactor介绍
1.1 Spring WebFlux 与Project Reactor
Spring Framework从版本5开始,基于Project Reactor支持响应式编程。
示例代码:https://gitee.com/ixinglan/spring-webflux-demo.git
Spring Framework从版本5开始,基于Project Reactor支持响应式编程。
案例: 设计1个表 tb_test
CREATE TABLE tb_test (
id INT PRIMARY KEY auto_increment,
nickname VARCHAR ( 255 ),
loginname VARCHAR ( 255 ),
age INT,
sex CHAR ( 1 ),
STATUS INT,
address VARCHAR ( 255 )
);
向表中写入10000000条数据
CREATE PROCEDURE test_insert () BEGIN
DECLARE
i INT DEFAULT 1;
WHILE
i <= 10000000 DO insert INTO tb_test
VALUES
( NULL, concat( 'zy', i ), concat( 'zhaoyun', i ), 23, '1', 1, 'beijing' );
SET i = i + 1;
END WHILE;
COMMIT;
END;
call test_insert(); #执行存储过程, 插入1千万条数据
type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。
设计中间表**,一般针对于**统计分析功能,或者实时性不高的需求(OLTP、OLAP)
为减少关联查询,创建合理的冗余字段(创建冗余字段还需要注意数据一致性问题)
示例代码:https://gitee.com/ixinglan/spring-webflux-demo.git
传统的命令式编程在面对当前的需求时的一些限制 例:有需求,即使在应用负载较高时,应用需要有更高的可用性,并提供低的延迟时间
数据库优化维度有四个: 硬件升级, 系统配置, 表结构设计, sql语句及索引
MySQL会在内存中保存一定的数据,通过LRU算法将不常访问的数据保存在硬盘文件中。