GreatSQL 8.4.4-4 GA (2025-10-15)

greatsql 8.4.4-4 ga (2025-10-15)

GreatSQL 8.4.4-4 GA (2025-10-15)

版本信息

发布时间:2025年10月15日

版本号:8.4.4-4, Revision d73de75905d

下载链接:https://www.php.cn/link/b68f0b79fc8f10966e8642318429eab6/releases/tag/GreatSQL-8.4.4-4

用户手册:https://greatsql.cn/docs/8.4.4-4/

特性增强

GreatSQL 8.4.4.-4版本在Percona Server for MySQL 8.4.4-4版本的基础上,主要在 高可用高性能高兼容高安全四个方面进行了多项特性增强,使得 GreatSQL 可在普通硬件上满足金融级应用场景,可作为 MySQL 或 Percona Server for MySQL 的理想可选替换。

高可用

针对 MGR 及主从复制进行了大量改进和提升工作,支持 地理标签、仲裁节点、读写动态 VIP、快速单主模式、智能选主 等特性,并针对 流控算法、事务认证队列清理算法、节点加入&退出机制、recovery机制、大事务传输压缩等多个 MGR 底层工作机制算法进行深度优化,进一步提升优化了 MGR 的高可用保障及性能稳定性。

支持 地理标签 特性,提升多机房架构数据可靠性。 支持 仲裁节点 特性,用更低的服务器成本实现更高可用。 支持 读写动态 VIP 特性,高可用切换更便捷,更快实现读负载均衡。支持 当主节点切换时,主动关闭当前活跃连接,缩短应用端不可用时长。。 支持 快速单主模式,在单主模式下更快,性能更高。 支持 智能选主 特性,高可用切换选主机制更合理。 优化 流控算法,使得事务更平稳,避免剧烈抖动。 支持 记录 MGR 网络通信开销超过阈值的事件,用于进一步分析和优化。 支持自动选择从最新事务数据的成员节点复制数据,可有效提升 Clone 速度,提高 MGR 的服务可靠性。 在主从复制中,从节点向主节点发起 Binlog 读取请求时支持限速控制。 优化了 asynchronous connection failover 中的故障检测效率,降低主从复制链路断开的时间,提高整体可用性。 https://dev.mysql.com/doc/refman/8.0/en/replication-asynchronous-connection-failover.html 支持在跨机房容灾场景中的 主主双向复制防止回路 机制。 优化了 MGR 节点加入、退出时可能导致性能剧烈抖动的问题。 解决了个别节点上磁盘空间爆满时导致MGR集群整体被阻塞的问题。 优化了 MGR 事务认证队列清理算法,高负载下不复存在每 60 秒性能抖动问题。 解决了 MGR 中长事务造成无法选主的问题。 修复了 MGR recovery 过程中长时间等待的问题。 优化了MGR大事务传输时压缩超过限制的处理机制。

更多信息详见文档:

高可用:https://greatsql.cn/docs/8.4.4-4/5-enhance/5-2-ha.html

高性能

相对 MySQL 及 Percona Server For MySQL 的性能表现更稳定优异,支持 Rapid 引擎、Turbo引擎、事务无锁化、并行 LOAD DATA、异步删除大表、线程池、非阻塞式 DDL、NUMA 亲和调度优化 等特性,在 TPC-C 测试中相对 MySQL 性能提升超过 30%

https://greatsql.cn/docs/8.4.4-4/10-optimize/3-5-benchmark-greatsql-vs-mysql-tpcc-report.html

在 TPC-H 测试中的性能表现是 MySQL 的十几倍甚至上百倍

https://greatsql.cn/docs/8.4.4-4/10-optimize/3-3-benchmark-greatsql-tpch-report.html

支持 大规模并行、基于内存查询、高压缩比的高性能 Rapid 引擎,可将数据分析性能提升几个数量级。

支持 高性能并行查询引擎Turbo,使GreatSQL具备多线程并发的向量化实时查询功能。

优化 InnoDB 事务系统,实现了大锁拆分及无锁化等多种优化方案,OLTP 场景整体性能提升约 20%。

支持 并行 LOAD DATA,适用于频繁导入大批量数据的应用场景,性能可提升约 20 多倍;对于无显式定义主键的场景亦有优化提升。

支持 异步删除大表,提高 InnoDB 引擎运行时性能的稳定性。

支持 线程池,降低了线程创建和销毁的代价,保证高并发下,性能稳定不会明显衰退。

支持 非阻塞式 DDL,可以避免数据库因为必须尽快完成 DDL 操作而导致业务请求大量被阻塞的问题。

支持 NUMA 亲和性优化,通过 NUMA 亲和性调度优化,将前端用户线程和后台线程绑定到固定 NUMA 节点上以提升线程处理性能。

更多信息详见文档:

高性能:https://greatsql.cn/docs/8.4.4-4/5-enhance/5-1-highperf.html

高兼容

GreatSQL 实现 100% 完全兼容 MySQL 及 Percona Server For MySQL 语法,支持大多数常见 Oracle 语法,包括数据类型兼容函数兼容SQL 语法兼容存储程序兼容等众多兼容扩展用法。

更多信息详见文档:

高兼容:https://greatsql.cn/docs/8.4.4-4/5-enhance/5-3-easyuse.html

高安全

GreatSQL 支持逻辑备份加密、CLONE 备份加密、审计、表空间国密加密、敏感数据脱敏、存储登录历史等多个安全提升特性,进一步保障业务数据安全,更适用于金融级应用场景。

支持 mysqldump 逻辑备份加密,提供了利用 mysqldump 逻辑备份的安全加密需求。 支持 Clone 备份加密,提供了利用 Clone 物理备份的安全加密需求。 支持 审计功能,及时记录和发现未授权或不安全行为。 支持 InnoDB 表空间国密加密算法,确保重要数据的加密安全。 支持 基于函数和策略的两种数据脱敏 工作方式,保障敏感用户数据查询结果保密性。

通过上述多个安全提升特性,进一步保障业务数据安全。

更多信息详见文档:

高安全:https://greatsql.cn/docs/8.4.4-4/5-enhance/5-4-security.html

其他

支持 Clone 在线全量热备、增备及恢复,结合 Binlog 可实现恢复到指定时间点。此外,Clone 备份还支持压缩功能。 https://greatsql.cn/docs/8.4.4-4/5-enhance/5-5-clone-compressed-and-incrment-backup.html 支持 InnoDB Page透明压缩采用Zstd算法,进一步提高数据压缩率,尤其是当有大量长文本重复数据时。 https://greatsql.cn/docs/8.4.4-4/5-enhance/5-5-innodb-page-compression.html

注意事项

从8.0升级到8.4版本,对现有运维管控系统最大的影响是,原先包含 MASTER/SLAVE 关键字的指令不再可用,相应的主要改动详见下表

旧指令 新指令

START SLAVE START REPLICA STOP SLAVE STOP REPLICA SHOW SLAVE STATUS SHOW REPLICA STATUS SHOW SLAVE HOSTS SHOW REPLICAS RESET SLAVE RESET REPLICA CHANGE MASTER TO CHANGE REPLICATION SOURCE TO RESET MASTER RESET BINARY LOGS AND GTIDS SHOW MASTER STATUS SHOW BINARY LOG STATUS PURGE MASTER LOGS PURGE BINARY LOGS SHOW MASTER LOGS SHOW BINARY LOGS

此外,原来在 CHANGE MASTER(新的指令 CHANGE REPLICATION SOURCE TO) 以及 START SLAVE(新的指令 START REPLICA) 中相关的参数变量也同样发生变化,详见下表

旧参数名 新参数名

MASTER_AUTO_POSITION SOURCE_AUTO_POSITION MASTER_HOST SOURCE_HOST MASTER_BIND SOURCE_BIND MASTER_USER SOURCE_USER MASTER_PASSWORD SOURCE_PASSWORD MASTER_PORT SOURCE_PORT MASTER_CONNECT_RETRY SOURCE_CONNECT_RETRY MASTER_RETRY_COUNT SOURCE_RETRY_COUNT MASTER_DELAY SOURCE_DELAY MASTER_SSL SOURCE_SSL MASTER_SSL_CA SOURCE_SSL_CA MASTER_SSL_CAPATH SOURCE_SSL_CAPATH MASTER_SSL_CIPHER SOURCE_SSL_CIPHER MASTER_SSL_CRL SOURCE_SSL_CRL MASTER_SSL_CRLPATH SOURCE_SSL_CRLPATH MASTER_SSL_KEY SOURCE_SSL_KEY MASTER_SSL_VERIFY_SERVER_CERT SOURCE_SSL_VERIFY_SERVER_CERT MASTER_TLS_VERSION SOURCE_TLS_VERSION MASTER_TLS_CIPHERSUITES SOURCE_TLS_CIPHERSUITES MASTER_SSL_CERT SOURCE_SSL_CERT MASTER_PUBLIC_KEY_PATH SOURCE_PUBLIC_KEY_PATH GET_MASTER_PUBLIC_KEY GET_SOURCE_PUBLIC_KEY MASTER_HEARTBEAT_PERIOD SOURCE_HEARTBEAT_PERIOD MASTER_COMPRESSION_ALGORITHMS SOURCE_COMPRESSION_ALGORITHMS MASTER_ZSTD_COMPRESSION_LEVEL SOURCE_ZSTD_COMPRESSION_LEVEL MASTER_LOG_FILE SOURCE_LOG_FILE MASTER_LOG_POS SOURCE_LOG_POS

执行 SQL 命令 SHOW [GLOBAL] STATUS 的结果中,也有部分状态变量发生变化,详见下表

旧状态变量名 新状态变量名

Com_slave_start Com_replica_start Com_slave_stop Com_replica_stop Com_show_slave_status Com_show_replica_status Com_show_slave_hosts Com_show_replicas Com_show_master_status Com_show_binary_log_status Com_change_master Com_change_replication_source

升级/降级到 GreatSQL 8.4.4-4

升级到 GreatSQL 8.4.4-4

 

如果是 GreatSQL 5.7 等系列版本,可以直接在原来的 datadir 基础上,修改 basedir 后,原地(in-place)启动 GreatSQL 8.0.32-27 版本后,先原地升级到 GreatSQL 8.0.32-27 版本。再继续在该 datadir 基础上升级,即修改 basedir 指向 GreatSQL 8.4.4-4 新版本,再次进行原地升级。需要注意的是,从 5.7 版本升级到 8.0 版本,再升级到 8.4 版本后,数据库中的账号仍采用 mysql_native_password 密码验证插件。当最终升级到 8.4 版本后,需要修改 my.cnf 配置文件,加上 mysql_native_password=1,以保证原有的账号能正常登录。

如果是 GreatSQL 8.0 等系列版本,并且没有使用 Rapid 引擎,则可以直接在原来的 datadir 基础上,修改 basedir 后,原地(in-place)启动 GreatSQL 8.4.4-4 后会完成自动升级。

如果旧版本是 GreatSQL 8.0.32-27 且已启用 Rapid 引擎,可以直接在原来的 datadir 基础上,修改 basedir 后,原地(in-place)启动 GreatSQL 8.4.4-4 后会完成自动升级。

如果旧版本是 GreatSQL 8.0.32-25 或 8.0.32-26 且已启用 Rapid 引擎,这种情况下无法原地升级,需要卸载所有 Rapid 引擎表,删除 Rapid 数据文件,才可以在原来的 datadir 基础上,修改 basedir 后,原地(in-place)启动 GreatSQL 8.4.4-4 后进行自动升级。新版本实例启动后,对所有 Rapid 引擎表执行 ALTER TABLE SECONDARY_LOAD 完成全量数据导入,再执行 SELECT START_SECONDARY_ENGINE_INCREMENT_LOAD_TASK() 启动增量导入任务,完成 Rapid 引擎表升级工作。下面是一个升级参考过程:

1. 查询并记录所有Rapid引擎表

可以执行下面的SQL,查询当前有哪些表使用了Rapid引擎:

greatsql> SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS FROM information_schema.TABLES WHERE CREATE_OPTIONS LIKE '%Rapid%'; +--------------+----------------+------------+ | TABLE_SCHEMA | TABLE_NAME | TABLE_ROWS | +--------------+----------------+------------+ | tpch100g | customer | 14854987 | | tpch100g | lineitem | 582868392 | | tpch100g | nation | 25 | | tpch100g | orders | 148492582 | | tpch100g | part | 19943155 | | tpch100g | partsupp | 79832625 | | tpch100g | region | 5 | | tpch100g | supplier | 989416 | +--------------+----------------+------------+

2. 正常停止GreatSQL实例进程

在停止GreatSQL实例进程前,先修改innodb_fast_shutdown=0

后再执行SHUTDOWN停止实例

greatsql> SET GLOBAL innodb_fast_shutdown=0; greatsql> SHUTDOWN;

3. 删除旧的Rapid引擎数据文件

cd /data/GreatSQL && rm -f duckdb*

4. 修改my.cnf配置文件中的basedir参数,指向GreatSQL 8.4.4-4新版本

#my.cnf [mysqld] basedir=/usr/local/GreatSQL-8.4.4-4-Linux-glibc2.28-x86_64

并确保参数upgrade不是设置为NONE

5. 启动GreatSQL 8.4.4-4新版本实例

systemctl start greatsql

6. 重新安装Rapid引擎

greatsql> INSTALL PLUGIN rapid SONAME 'ha_rapid.so';

7. 对Rapid引擎表做一次全量数据导入

greatsql> ALTER TABLE test.t1 SECONDARY_LOAD;

tip 小贴士:由于在升级前没有去掉该表的SECONDARY_ENGINE=rapid属性,所以无需重新设置。如果在升级前卸载所有Rapid引擎表,则需要重新设置。

8. 再次启动增量导入任务

greatsql> SELECT START_SECONDARY_ENGINE_INCREMENT_LOAD_TASK('test', 't1');

这就完成Rapid引擎表的升级操作了。

如果是 MySQL 5.7 或 Percona Server 5.7 等系列版本,可以直接在原来的 datadir 基础上,修改 basedir 后,原地(in-place)启动 GreatSQL 8.0.32-27 版本后,确认升级成功后,再次在原来 datadir 基础上继续升级,即修改 basedir 指向 GreatSQL 8.4.4-4 新版本,之后就能完成自动升级。需要注意的是,从 5.7 版本升级到 8.0 版本,再升级到 8.4 版本后,数据库中的账号仍采用 mysql_native_password 密码验证插件。当最终升级到 8.4 版本后,需要修改 my.cnf 配置文件,加上 mysql_native_password=1,以保证原有的账号能正常登录。

如果是 MySQL 8.0 或 Percona Server 8.0 等系列版本,则可以直接在原来的 datadir 基础上,修改 basedir 后,原地(in-place)启动 GreatSQL 8.4.4-4 后会完成自动升级。

其他情况下,最好采用导入逻辑备份文件方式升级到 GreatSQL 8.4.4-4 版本。

在以上几个原地升级场景中,务必保证my.cnf中参数upgrade不能设置为NONE,可以设置为默认的AUTOFORCE。例如:

#my.cnf[mysqld]upgrade = AUTO

更多迁移升级方案请参考:

迁移升级:https://greatsql.cn/docs/8.4.4-4/7-migrate-and-upgrade/0-migrate-and-upgrade.html

降级到 GreatSQL 8.4.4-4

如果是要从 MySQL/Percona 8.4 系列较高的小版本降级到 GreatSQL 8.4.4-4 版本,可以采用原地降级方式快速完成版本降级操作。即可以直接在原来的 datadir 基础上,修改 basedir 后,并增加设置参数upgrade=FORCE,原地(in-place)启动 GreatSQL 8.4.4-4 后会完成自动降级。

如果是要从 MySQL/Percona 9.0 及之后的版本降级到 GreatSQL 8.4.4-4 版本,则需要采取逻辑备份 + 逻辑导入方式完成降级操作,并且在逻辑备份导入完成后的首次重启时,务必设置 upgrade=FORCE 强制升级所有数据表,包括系统表。

降级过程操作大致如下所示:

1. 在高版本中逻辑备份全量数据

mysqldump -S/data/MySQL/mysql.sock -A --triggers --routines --events --single-transaction > /data/backup/fulldump.sql

2. 在GreatSQL 8.4.4-4版本环境中导入逻辑备份文件,完成逻辑恢复

mysql -S/data/GreatSQL/mysql.sock -f < /data/backup/fulldump.sql

3. 修改my.cnf,确保设置upgrade=FORCE

#my.cnf[mysqld]upgrade = FORCE

4. 重启GreatSQL,降级完成

systemctl restart greatsql

重启过程中,可以看到日志有类似下面的强制降级过程

[Note] [MY-013387] [Server] Upgrading system table data.[Note] [MY-013385] [Server] Upgrading the sys schema.[Note] [MY-013400] [Server] Upgrade of help tables started.[Note] [MY-013400] [Server] Upgrade of help tables completed.[Note] [MY-013394] [Server] Checking 'mysql' schema.[Note] [MY-013394] [Server] Checking 'sys' schema.[System] [MY-014064] [Server] Server downgrade from '80406' to '80404' started.[System] [MY-014064] [Server] Server downgrade from '80406' to '80404' completed.

如果不设置 upgrade = FORCE 强制升级所有表,有可能发生系统表 mysql.procs_priv 损坏错误,在创建用户时可能会报告类似下面的错误:

greatsql> CREATE USER tpch IDENTIFIED BY 'tpch';ERROR 1728 (HY000): Cannot load from mysql.procs_priv. The table is probably corrupted

GreatSQL vs MySQL

1.主要特性 GreatSQL 8.4.4-4 MySQL 8.4.4

开源 ✔️ ✔️ ACID 完整性 ✔️ ✔️ MVCC 特性 ✔️ ✔️ 支持行锁 ✔️ ✔️ Crash 自动修复 ✔️ ✔️ 表分区(Partitioning) ✔️ ✔️ 视图(Views) ✔️ ✔️ 子查询(Subqueries) ✔️ ✔️ 触发器(Triggers) ✔️ ✔️ 存储程序(Stored Programs) ✔️ ✔️ 外键(Foreign Keys) ✔️ ✔️ 窗口函数(Window Functions) ✔️ ✔️ 通用表表达式 CTE ✔️ ✔️ 地理信息(GIS) ✔️ ✔️ 基于 GTID 的复制 ✔️ ✔️ 组复制(MGR) ✔️ ✔️ MyRocks 引擎 ✔️ ❌ 支持龙芯架构 ✔️ ❌ 2. 性能提升扩展 GreatSQL 8.4.4-4 MySQL 8.4.4 Rapid 引擎 ✔️ 仅云上HeatWave Turbo 引擎 ✔️ ❌ NUMA 亲和性优化 ✔️ ❌ 非阻塞式 DDL ✔️ ❌ 无主键表导入优化 ✔️ ❌ 并行 LOAD DATA ✔️ ❌ InnoDB 事务 ReadView 无锁优化 ✔️ ❌ InnoDB 事务大锁拆分优化 ✔️ ❌ InnoDB Page压缩支持Zstd ✔️ ❌ InnoDB 资源组 ✔️ ✔️ 自定义 InnoDB 页大小 ✔️ ✔️ Contention-Aware Transaction Scheduling ✔️ ✔️ InnoDB Mutexes 拆分优化 ✔️ ❌ MEMORY 引擎优化 ✔️ ❌ InnoDB Flushing 优化 ✔️ ❌ 并行 Doublewrite Buffer ✔️ ✔️ InnoDB 快速索引创建优化 ✔️ ❌ VARCHAR/BLOB/JSON 类型存储单列压缩 ✔️ ❌ 数据字典中存储单列压缩信息 ✔️ ❌ 3. 面向开发者提升改进 GreatSQL 8.4.4-4 MySQL 8.4.4 X API ✔️ ✔️ JSON ✔️ ✔️ NoSQL Socket-Level接口 ✔️ ✔️ InnoDB 全文搜索改进 ✔️ ❌ 更多 Hash/Digest 函数 ✔️ ❌ Oracle 兼容-数据类型 ✔️ ❌ Oracle 兼容-函数 ✔️ ❌ Oracle 兼容-SQL语法 ✔️ ❌ Oracle 兼容-存储程序 ✔️ ❌ 4. 基础特性提升改进 GreatSQL 8.4.4-4 MySQL 8.4.4 MGR 提升-地理标签 ✔️ ❌ MGR 提升-仲裁节点 ✔️ ❌ MGR 提升-读写节点绑定VIP ✔️ ❌ MGR 提升-快速单主模式 ✔️ ❌ MGR 提升-智能选主机制 ✔️ ❌ MGR 提升-全新流控算法 ✔️ ❌ MGR 提升-网络分区异常处理 ✔️ ❌ MGR 提升-节点异常退出处理 ✔️ ❌ MGR 提升-节点磁盘满处理 ✔️ ❌ MGR 提升-自动选择 donor 节点 ✔️ ❌ MGR 提升-大事务压缩优化 ✔️ ❌ Clone 增量备份 ✔️ ❌ Clone 备份压缩 ✔️ ❌ Binlog 读取限速 ✔️ ❌ information_schema 表数量 95 65 全局性能和状态指标 853 434 优化器直方图(Histograms) ✔️ ✔️ Per-Table 性能指标 ✔️ ❌ Per-Index 性能指标 ✔️ ❌ Per-User 性能指标 ✔️ ❌ Per-Client 性能指标 ✔️ ❌ Per-Thread 性能指标 ✔️ ❌ 全局查询相应耗时统计 ✔️ ❌ SHOW ENGINE INNODB STATUS 增强 ✔️ ❌ 回滚段信息增强 ✔️ ❌ 临时表信息增强 ✔️ ❌ 用户统计信息增强 ✔️ ❌ Slow log 信息增强 ✔️ ❌ 5.安全性提升 GreatSQL 8.4.4-4 MySQL 8.4.4 国密支持 ✔️ ❌ 备份加密 ✔️ ❌ 审计 ✔️ 仅企业版 数据脱敏 ✔️ ❌ SQL Roles ✔️ ✔️ SHA-2 密码Hashing ✔️ ✔️ 密码轮换策略 ✔️ ✔️ PAM 认证插件 ✔️ 仅企业版 Keyring 存储在文件中 ✔️ ✔️ Keyring 存储在Hashicorp Vault中 ✔️ 仅企业版 InnoDB 数据加密 ✔️ ✔️ InnoDB 日志加密 ✔️ ✔️ InnoDB 各种表空间文件加密 ✔️ ✔️ 二进制日志加密 ✔️ ❌ 临时文件加密 ✔️ ❌ 强制加密 ✔️ ❌ 6. 运维便利性提升 GreatSQL 8.4.4-4 MySQL 8.4.4 DDL 原子性 ✔️ ✔️ 数据字典存储 InnoDB 表 ✔️ ✔️ 快速 DDL ✔️ ✔️ SET PERSIST ✔️ ✔️ 不可见索引 ✔️ ✔️ 线程池(Threadpool) ✔️ 仅企业版 备份锁 ✔️ ❌ SHOW GRANTS 扩展 ✔️ ❌ 表损坏动作扩展 ✔️ ❌ 杀掉不活跃事务 ✔️ ❌ START TRANSACTION WITH CONSISTENT SNAPSHOT 扩展 ✔️ ❌

GreatSQL 8.4.4-4 基于 Percona Server for MySQL 8.4.4-4 版本,它在 MySQL 8.4.4 基础上做了大量的改进和提升以及众多新特性,详情请见:

Percona Server for MySQL feature comparison: https://docs.percona.com/percona-server/8.4/feature-comparison.html

这其中包括线程池、审计、数据脱敏等 MySQL 企业版才有的特性,以及 performance_schema 提升、information_schema 提升、性能和可扩展性提升、用户统计增强、PROCESSLIST 增强、Slow Log 增强等大量改进和提升,这里不一一重复列出。

GreatSQL Release Notes

GreatSQL 8.4

Changes in GreatSQL 8.4.4-4 (2025-10-15) https://greatsql.cn/docs/8.4.4-4/1-docs-intro/relnotes/changes-greatsql-8444.html

GreatSQL 8.0

Changes in GreatSQL 8.0.32-27 (2025-3-10) Changes in GreatSQL 8.0.32-26 (2024-8-5) Changes in GreatSQL 8.0.32-25 (2023-12-28) Changes in GreatSQL 8.0.32-24 (2023-6-5) Changes in GreatSQL 8.0.25-17 (2023-3-13) Changes in GreatSQL 8.0.25-16 (2022-5-16) Changes in GreatSQL 8.0.25-15 (2021-8-26)

GreatSQL 5.7

Changes in GreatSQL 5.7.36-39 (2022-4-7)

源码地址:点击下载

以上就是GreatSQL 8.4.4-4 GA (2025-10-15)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/19036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Hibernate Search中嵌入/关联对象索引的深度解析与实践
上一篇 2025年11月1日 00:21:46
分布式运维监控系统 WGCLOUD v3.3.6 全新发布 详细解读更新功能点
下一篇 2025年11月1日 00:23:48

相关推荐

  • 修复Django电商项目中AJAX过滤产品列表图片不显示问题

    在Django电商项目中,当使用AJAX动态加载过滤后的产品列表时,常遇到图片无法正常显示的问题。这通常是由于前端模板中图片加载方式(如data-setbg属性结合JavaScript库)与AJAX动态内容更新机制不兼容所致。解决方案是直接在AJAX返回的HTML中使用标准的标签来渲染图片,确保浏览…

    2026年5月10日
    000
  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • Matplotlib 地图中多类型图例的创建与优化

    Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化

    本教程旨在解决matplotlib地图可视化中,如何在一个图例中同时展示颜色块(如区域分类)和自定义标记(如特定兴趣点)的问题。文章详细介绍了当传统`patch`对象无法正确显示标记时,如何利用`matplotlib.lines.line2d`创建标记图例句柄,并将其与颜色块图例句柄合并,从而生成一…

    2026年5月10日 用户投稿
    100
  • Golang JSON序列化:控制敏感字段暴露的最佳实践

    本教程探讨golang中如何高效控制结构体字段在json序列化时的可见性。当需要将包含敏感信息的结构体数组转换为json响应时,通过利用`encoding/json`包提供的结构体标签,特别是`json:”-“`,可以轻松实现对特定字段的忽略,从而避免敏感数据泄露,确保api…

    2026年5月10日
    000
  • 怎么在PHP代码中实现图片上传功能_PHP图片上传功能实现与安全处理教程

    首先创建含enctype的HTML表单,再用PHP接收文件,检查目录、移动临时文件,验证类型与大小,生成唯一文件名,并调整php.ini限制以确保上传成功。 如果您尝试在PHP项目中添加图片上传功能,但服务器无法正确接收或保存文件,则可能是由于表单配置、文件处理逻辑或安全限制的问题。以下是实现该功能…

    2026年5月10日
    100
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • HTML如何隐藏滚动条或去除滚动条

    滚动条可以存在也可以不存在,本文主要介绍了html 隐藏滚动条和去除滚动条的方法的相关资料,大家一起来学习一下html隐藏滚动条或去除滚动条的方法吧。 1. html 标签加属性 XML/HTML Code复制内容到剪贴板 2.body中加入以下代码 立即学习“前端免费学习笔记(深入)”; html…

    用户投稿 2026年5月10日
    100
  • Golang gRPC流式请求异常处理

    在Golang的gRPC流式通信中,必须通过context.Context处理异常。应监听上下文取消或超时,及时释放资源,设置合理超时,避免连接长时间挂起,并在goroutine中通过context控制生命周期。 在使用 Golang 和 gRPC 实现流式通信时,异常处理是确保服务健壮性的关键部分…

    2026年5月10日
    000
  • Go语言mgo查询构建:深入理解bson.M与日期范围查询的正确实践

    本文旨在解决go语言mgo库中构建复杂查询时,特别是涉及嵌套`bson.m`和日期范围筛选的常见错误。我们将深入剖析`bson.m`的类型特性,解释为何直接索引`interface{}`会导致“invalid operation”错误,并提供一种推荐的、结构清晰的代码重构方案,以确保查询条件能够正确…

    2026年5月10日
    100
  • vscode上怎么运行html_vscode上运行html步骤【指南】

    首先保存文件为.html格式,再通过浏览器或Live Server插件打开预览;推荐安装Live Server实现本地服务器运行与实时刷新,提升开发体验。 在 VS Code 上运行 HTML 文件并不需要复杂的配置,只需几个简单步骤即可预览页面效果。VS Code 本身是一个代码编辑器,不直接运行…

    2026年5月10日
    100
  • 修复点击时按钮抖动:CSS垂直对齐实践

    本文探讨了在Web开发中,交互式按钮(如播放/暂停按钮)在点击时发生意外垂直位移的问题。通过分析CSS样式变化对元素布局的影响,我们发现这是由于按钮不同状态下的边框样式和内边距改变,以及默认的垂直对齐行为共同作用所致。核心解决方案是利用CSS的vertical-align属性,将其设置为middle…

    2026年5月10日
    100
  • Golang goroutine与channel调试技巧

    使用go run -race检测数据竞争,结合runtime.NumGoroutine监控协程数量,通过pprof分析阻塞调用栈,利用select超时避免永久阻塞,有效排查goroutine泄漏、死锁和数据竞争问题。 Go语言的goroutine和channel是并发编程的核心,但它们也带来了调试上…

    2026年5月10日
    000
  • 页面中文本域的值怎么设置

    标签定义多行的文本输入控件。 文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是 Courier)。 可以通过 cols 和 rows 属性来规定 textarea 的尺寸,不过更好的办法是使用 CSS 的 height 和 width 属性。 注释:在文本输入区内的文本行间,用 …

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 《魔兽世界》将于6月11日开启国服回归技术测试

    《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试

    《%ign%ignore_a_1%re_a_1%》官方宣布,将于6月11日开启国服回归技术测试,时间为7天,并称可以在6月内正式开服,玩家们可以访问官网下载战网客户端并预下载“巫妖王之怒”客户端,技术测试详情见下图。 WordAi WordAI是一个AI驱动的内容重写平台 53 查看详情 以上就是《…

    2026年5月10日 用户投稿
    200
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    100
  • 前端缓存策略与JavaScript存储管理

    根据数据特性选择合适的存储方式并制定清晰的读写与清理逻辑,能显著提升前端性能;合理运用Cookie、localStorage、sessionStorage、IndexedDB及Cache API,结合缓存策略与定期清理机制,可在保证用户体验的同时避免安全与性能隐患。 前端缓存和JavaScript存…

    2026年5月10日
    200
  • HTML5网页如何实现手势操作 HTML5网页移动端交互的处理技巧

    首先利用原生touch事件实现滑动判断,再通过preventDefault解决滚动冲突,接着引入Hammer.js处理复杂手势,最后通过优化点击区域、避免事件冲突和增加视觉反馈提升体验。 在移动端浏览器中,HTML5网页可以通过触摸事件实现手势操作,提升用户体验。虽然原生JavaScript提供了基…

    2026年5月10日
    000
  • 深入理解 Express.js 中 next() 参数的作用与中间件机制

    本文深入探讨 express.js 中间件函数中的 `next()` 参数。它负责将控制权传递给请求-响应周期中的下一个中间件或路由处理程序。文章将详细解释 `next()` 的工作原理、中间件的注册与执行顺序,以及不正确使用 `next()` 可能导致请求挂起的风险,并通过代码示例和实际应用场景,…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信