MySQL订单表分库分表实战:ShardingSphere-JDBC从配置到迁移全解析
1. 订单表过百万后数据库最先扛不住的是什么做Java后端的朋友应该都有这种体会订单表是最容易触碰数据量瓶颈的业务表。用户下单、支付回调、状态流转、对账查询每一笔都是硬写入没有任何缓存可以兜住写入路径。我接手过的一个订单系统上线不到八个月核心订单表已经突破了六百万行从那以后问题就开始密集出现。最初的表现是后台订单管理页的列表查询变慢。运营点一下筛选条件MySQL要扫好几秒才出结果接着就是慢查询日志里塞满了各种SELECT * FROM t_order WHERE user_id ? ORDER BY create_time DESC LIMIT 10之类的语句。再往后订单状态更新的锁等待开始频繁出现高峰期甚至出现Deadlock found的报错。DBA把索引加了一轮又一轮user_id、order_no、create_time单列索引和联合索引都试过每次加索引确实能压下去一阵子但数据量继续涨问题还是周期性地回来。为什么会这样关键在于MySQL的B树索引结构。单表数据量越大索引树的层数就越高一个二级索引从根节点到叶子节点的路径变长随机IO次数增加这是物理层面的瓶颈靠加索引只能缓解不能根治。还有一个很多人忽略的点单表数据量大了之后InnoDB的缓冲池命中率会持续下降。订单表属于频繁读写热点如果热数据占比相对固定比如最近三个月的订单才需要高频访问但整个表的数据全被加载进缓冲池的候选LRU链表里内存里全是历史冷数据热数据反而要持续走磁盘。这个现象用SHOW GLOBAL STATUS LIKE Innodb_buffer_pool_read_requests和Innodb_buffer_pool_reads两个值一对比就能看出来读请求落盘比例越来越高。所以到了百万级这个量级分库分表不是要不要做的问题而是什么时候做、怎么做才不返工的问题。注意我的措辞——不是做到百万级才开始设计而是业务体量能看到百万级趋势的时候就应该在技术方案里把分库分表的路径预留好否则后面数据迁移的代价会远远超过分库分表本身。2. 分库分表方案选型为什么是ShardingSphere-JDBC而不是MyCat分库分表市面上主流方案其实就两大类一是应用层集成SDK代表就是ShardingSphere-JDBC二是独立部署中间件代理代表是MyCat。很多人在这两个之间纠结我先说结论大多数订单系统场景选ShardingSphere-JDBC更合适。先看两者的本质区别。ShardingSphere-JDBC是一个Jar包嵌入在应用进程里通过重写DataSource和连接池在JDBC层拦截SQL、解析路由、改写、归并。它不需要额外部署独立服务应用连的还是原本的数据库地址只不过连接的是多个库里多个表。MyCat则是一个独立进程应用把MyCat当成普通MySQL连真正路由到后端哪个库哪个表由MyCat来做。这个架构差异决定了两种方案的特性走向。应用层SDK的好处是没有额外的网络跳转性能损耗极低分片逻辑和应用进程在一起出了问题好排查部署架构不变没有中间件单点故障。MyCat这类代理方案的好处是对应用侵入性小SQL透传甚至可以接非Java语言的服务集中管理分片规则不用到处改代码。但代价是每一条SQL都要经过代理转发延迟和吞吐都有损耗而且代理本身会成为新的瓶颈点和运维复杂点。订单系统的场景特殊性在于写入路径要求高可用、低延迟高峰期下单接口TPS动辄几千多一次网络跳转都有影响。所以从性能这个核心指标出发ShardingSphere-JDBC天然占优。它直接跑在应用进程内SQL解析和路由在本地完成后面连的是多层连接池不会引入额外的网络往返。用表格做一个更直观的对比对比项ShardingSphere-JDBCMyCat部署方式Jar包嵌入应用独立中间件服务性能损耗低进程内处理中高额外网络跳转功能丰富度分片、读写分离、分布式事务、数据迁移分片、读写分离、全局表运维成本无额外运维需维护中间件集群适用场景Java单体或微服务跨语言、需要SQL透传侵入性需要改造DataSource低但对SQL兼容性有要求还有一点实战中体会很深ShardingSphere-JDBC的功能演进速度明显更快。5.x版本加入了分布式事务、数据迁移、弹性伸缩这些重量级能力尤其是数据迁移的ShardingSphere-Scaling组件配合分片规则做数据迁移的时候省了很多手工操作。MyCat虽然起步早但社区活跃度和版本迭代相比要沉闷一些新特性跟进没那么快。当然选型也不能无脑吹ShardingSphere-JDBC。如果你的团队里已经稳定维护了一套MyCat代理集群或者系统里混着Python/PHP/Go多个语言都需要接入同一个分片逻辑那代理模式确实有它的场景价值。但从一个纯Java订单系统的角度出发ShardingSphere-JDBC是最合适的选择——性能和功能都是直接服务于业务本身的。3. 核心配置实战一个订单库拆成16库32表全流程配置前的第一件事是确定分片策略。订单表的最佳分片键是什么当然是order_id或者user_id这个要结合业务查询来定。我的建议是如果订单查询绝大多数场景都是按用户维度比如查某用户的历史订单查某用户的最近一笔订单那就用user_id做分片键如果订单号是全局唯一且查询场景更多是根据订单号直接确认状态就用order_id。我在实际项目里用的是order_id做分片键因为外部系统回调、客服查询、支付对账都依赖订单号查询频率远高于用户维度的列表查询。分片算法我选了最稳妥的HASH_MOD即哈希取模。订单号计算hash值对分片总数取模得到一个确定的分片库和分片表。要注意的是分片总数必须是2的幂这样未来扩容才能做到只扩库不迁移旧数据否则取模算法一旦改变全量数据都要重新路由一遍。完整的分片规划假设16个库、32张表也就是每个库里面2张表。这么设计的原因是取模数32在2的幂范围内既能满足数据均匀分布又能控制单表数据量在百万级以下。下面是ShardingSphere-JDBC 5.x版本的YAML核心配置我直接贴能跑通的版本spring: shardingsphere: datasource: names: ds0,ds1,ds2,ds3,ds4,ds5,ds6,ds7,ds8,ds9,ds10,ds11,ds12,ds13,ds14,ds15 ds0: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://192.168.1.100:3306/order_db_0?useSSLfalsecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: 123456 # 其余ds1~ds15配置类似jdbc-url中库名分别对应order_db_1~order_db_15 rules: sharding: tables: t_order: actual-data-nodes: ds$-{0..15}.t_order_$-{0..1} table-strategy: standard: sharding-column: order_id sharding-algorithm-name: t_order_table_hash_mod database-strategy: standard: sharding-column: order_id sharding-algorithm-name: t_order_db_hash_mod key-generate-strategy: column: id key-generator-name: snowflake sharding-algorithms: t_order_db_hash_mod: type: HASH_MOD props: sharding-count: 16 t_order_table_hash_mod: type: HASH_MOD props: sharding-count: 32 key-generators: snowflake: type: SNOWFLAKE props: sql-show: true这段配置里有两个细节值得注意。第一为什么库和表的分片键都用order_id。因为ShardingSphere-JDBC的分片路由是根据SQL里的分片列来计算的如果SQL不带分片列就只能走全库全表广播路由这样查询性能会退化成全表扫描的加强版。order_id在订单的绝大多数操作里都会作为查询条件出现所以路由命中率极高。第二表分片数我写成32但实际每个库只有2张表这样设计是为了兼顾未来扩容。如果后续数据量再涨可以按2的幂递增表数量比如64张表、128张表而每个库的表数量翻倍不需要移动已有数据。配置好之后需要改造数据源相关的Bean代码。在Spring Boot里核心是让ShardingSphere的DataSource替代原来的数据源Configuration public class DataSourceConfig { Bean(name shardingDataSource) public DataSource shardingDataSource() throws SQLException { // 加载YAML配置并创建ShardingSphere数据源 return YamlShardingSphereDataSourceFactory.createDataSource( ResourceUtils.getFile(classpath:sharding-sphere-config.yaml)); } }这一步做完后续的JPA、MyBatis、JDBC Template全部正常使用代码层面几乎不用改任何SQL语句因为ShardingSphere-JDBC在底层会把逻辑表t_order自动改写为物理表t_order_0或t_order_1把逻辑库名映射到真实库名。4. 订单查询的分片键困局不能每次都带order_id怎么办配置跑通之后第一个实战问题就来了后台运营页面要按用户ID查订单列表但我们的分片键选的是order_id。如果SQL里没有order_id条件ShardingSphere-JDBC无法定位到具体分片迫不得已要走全库全表路由每个库每张表都执行一遍然后把结果合并。32张表各查一遍再聚合数据量一大性能照样崩。这个问题的本质是任何分库分表方案都要求查询语句能命中分片键否则就必须接受跨分片查询的代价。但对于订单系统来说按用户查订单是无可回避的高频场景所以必须在设计阶段就规划好。我的解决方案是建立索引表也叫冗余表。核心思路是再建一张以user_id为分片键的订单冗余表专门用来支撑用户维度的订单列表查询。t_order_user_index: actual-data-nodes: ds$-{0..15}.t_order_user_index_$-{0..1} table-strategy: standard: sharding-column: user_id sharding-algorithm-name: t_order_user_index_table_hash_mod database-strategy: standard: sharding-column: user_id sharding-algorithm-name: t_order_user_index_db_hash_mod写入订单时在同一个本地事务里同时向t_order和t_order_user_index插入数据业务侧无需感知。查询用户订单列表时走t_order_user_index表按user_id精准路由单表扫描性能极好拿到订单号集合之后再回表查询完整订单信息。除了索引表方案还有一种思路是绑定表。如果订单明细表、订单退款表都需要和主表关联查询在ShardingSphere里可以配置binding-tables让关联查询绑定到同一分片避免笛卡尔积式的跨分片关联rules: sharding: binding-tables: - t_order,t_order_item,t_order_refund配置了绑定表之后t_order和t_order_item使用相同的分片键关联查询时ShardingSphere能识别出它们在同一物理分片不需要把两个表都广播到全库全表再join这是分库分表场景下非常重要的性能优化。另一个高频坑订单列表的分页排序。普通MySQL里一个ORDER BY create_time DESC LIMIT 20,10非常自然但分库分表之后这10条数据可能分布在多个分片里。ShardingSphere的处理方式是每个分片都取前30条limit偏移量条数然后内存归并排序取最终需要的10条。这个机制叫全局归并查询深度越大数据量越大性能降得越厉害。所以订单后台的分页查询我强烈建议改成上一页下一页的游标模式用order_id ?或者create_time ?这种条件去翻页而不是用传统PageNumber模式深翻。5. 分布式主键、分布式事务和扩容三个绕不开的硬骨头先说分布式主键。原来单表用AUTO_INCREMENT主键分库分表之后如果还用自增不同分片之间绝对会撞主键就算步长设成全局唯一的也不行——没法动态扩容。业界标准方案是雪花算法SnowflakeShardingSphere内置了SNOWFLAKE生成器就是我上面配置里key-generate-strategy那一段。雪花算法生成的ID是64位的Long由时间戳、机器ID、序列号组成趋势递增全局唯一性能极高。唯一要注意的是时间回拨问题——如果系统时钟回拨可能导致ID重复ShardingSphere的SNOWFLAKE实现里做了简单的时钟回拨保护但建议部署时用NTP锁定时钟偏移。然后是分布式事务这个最容易被低估。分库分表之后一次下单操作可能涉及订单主表、订单明细表、库存表、优惠券表分别落在不同物理库甚至不同实例本地事务彻底失效。很多人第一反应是上Seata的AT模式或者TCC模式但我要泼一盆冷水订单核心链路对性能和一致性的要求极高全局事务的锁和通信开销在高峰期完全扛不住。我的实践是本地事务事务消息状态机的组合方案。下单时只在一个库内完成订单主表和明细的本地事务然后发送可靠事务消息给库存服务和优惠券服务每个服务各自处理本地事务通过最终一致性保证整体订单状态正确。这个方案虽然代码复杂一点但性能开销远小于分布式事务框架也完全能满足金融级别的一致性要求。ShardingSphere-JDBC本身有接入Seata的方案但如果让我选我会优先考虑业务层最终一致性。最后说扩容。很多人分库分表设计完了一看数据快涨满了就慌了。其实如果初期的分片总数设计成2的幂扩容路径是很清晰的。比如现在的16库32表未来可以扩容到32库64表关键操作是在DBA侧把新库新表建好用ShardingSphere的弹性伸缩组件ShardingSphere-Scaling做数据迁移它会自动根据新旧分片规则把数据搬到正确的位置迁移过程中业务是正常运行的利用binlog同步增量数据校验数据一致性之后把应用配置里的分片规则更新为新的分片总数重启即可。这套流程我在生产环境跑过几百GB的订单数据在低峰期启动迁移大概几个小时搞定业务影响面很小。6. 实测踩坑记录你以为配置对了就稳了还差得远写ShardingSphere-JDBC配置容易但跑通生产级订单链路我踩过的坑能列一页纸。挑几个典型的分享这些不到实际压测场景根本暴露不出来。第一个坑是SQL改写对子查询支持不完善。ShardingSphere的SQL解析能力虽然强但对WHERE order_id IN (SELECT order_id FROM some_temp_table)这类子查询某些版本会直接抛异常因为子查询里的order_id无法被路由识别。解决办法是尽量避免在分片键上做子查询改成两步查询先查出结果再走路由。第二个坑是事务边界。ShardingSphere-JDBC的事务是基于ThreadLocal的如果事务里跨了多个分片事务管理器会把所有涉及分片加入到同一事务里这个没毛病。但坑在于如果你在事务里执行了DDL操作比如CREATE TABLE部分分片执行成功、部分失败事务回滚时DDL无法回滚数据就变得不一致了。所以生产环境严格禁止在分片后的库里执行DDL表结构变更必须走灰度发布流程。第三个坑是连接池配置。每个分片都对应一个独立的数据源连接池默认HikariCP的maximumPoolSize如果设置太小分片多了之后连接耗尽很快。我遇到过最典型的问题默认配置10个连接16个库就是160个连接看起来不少但只要有一个分片执行了慢SQL连接池就会被占满引发连锁雪崩。后来我把maximumPoolSize统一调到了20并且对慢SQL做了实时告警这个问题才算控制住。第四个坑是sql-show: true这个配置。开发环境开着它看路由结果特别好用能直观看到一条逻辑SQL被改写成了什么样的物理SQL。但是生产环境如果忘记关掉每个SQL都打印日志Extra日志量会大得吓人直接影响吞吐。第五个坑是数据库表结构同步。分库分表之后一套表结构要同步到16个库。手工执行SQL容易漏我后来写了个脚本每次表结构变更之后自动在16个库并行执行并且加了结构比对校验不一致直接标记告警。这些坑都不是配置文档里会告诉你的全靠生产环境捶打。有句玩笑话说得好分库分表一时爽后续运维火葬场。但反过来想如果这些坑都趟过去了数据量和查询性能的长期稳定才是真正的收益。7. 从单表到分片的迁移路径如何做到业务无感切换最后一个环节也是最容易被忽略的环节存量数据怎么迁。你不能直接把线上正在跑的单表换成ShardingSphere配置数据对不上就全崩了。这里分享我当时用的双写平滑迁移方案分四步走。第一步代码改造完成之后在业务写入路径上同时向旧表和新分片表写入数据也就是双写阶段。双写期间读请求全部走旧表新分片表只积累数据不对外服务。第二步跑历史数据迁移任务。把旧表里已有的数据按分片规则计算目标库表分批搬过去。推荐用ShardingSphere-Scaling来做它会自动识别分片规则生成迁移任务全程增量同步不用手工写搬运代码。如果没有这个组件自己写也要按order_id分段扫旧表每扫到一条就路由写入新表注意控制游标和批次大小避免一次性加载太多数据导致内存溢出。第三步数据一致性校验。双写和迁移都跑完之后从旧表和新表分别执行count聚合对比总数。更严谨的做法是按order_id抽样一批数据逐条对比字段值。确认完全一致之后把读请求切到新分片表。这里建议灰度切换先切5%流量跑一两个小时观察接口延迟和错误率没问题再逐步放量到100%。第四步确认新系统稳定后关闭双写逻辑旧表可以保留一段时间作为备份。业务代码里把旧表相关逻辑彻底下线整个迁移就算闭环了。这套平滑迁移方案稍微费点时间但胜在稳妥。我见过垃圾一点的方案是直接停服迁移订单系统停服两小时损失的可不只是流水客户信任和品牌影响都搭进去了。平滑迁移虽然代码多写一点但用户完全无感知这才是百万级订单系统该有的底线素质。回顾整个项目过程我最深的体会是分库分表不是一个加个配置就能一劳永逸的银弹它是一套系统工程从分片键选择、分片算法、索引冗余、跨分片查询、分布式事务到平滑迁移每一环都要提前想清楚。如果让我给一个新人建议那就是先别急着抄配置花半天时间想清楚两个问题你的查询模型里最高频的查询维度是什么未来数据量增长时你的扩容路径是否清晰这两个问题想明白了剩下的都是填坑而已。

相关新闻

SQLite在LLM项目中的轻量级数据存储实践:从对话到RAG的完整方案

SQLite在LLM项目中的轻量级数据存储实践:从对话到RAG的完整方案

每次做完一个LLM项目,总有人问我:聊天记录存哪、知识库的原文和切片放哪、还有那一堆模型参数和用户配置怎么管。我给出的答案往往都是同一句话——SQLite。对方通常一脸惊讶:大模型应用不是得上PostgreSQL加专用向量数据库吗?怎么…

2026/10/1 3:49:41 阅读更多 →
为什么看图软件的尺寸标注是核心竞争力?从实操到兼容性全解析

为什么看图软件的尺寸标注是核心竞争力?从实操到兼容性全解析

1. 为什么看图软件反而把「尺寸标注」做成了核心竞争力1.1 常规看图工具的痛点先聊聊我自己的使用场景。过去几年,我经手的项目里有一大半的时间不是在画图,而是在"看图"——看别人画好的图、看现场报上来的图、看设计院反复修改的图。这期间试…

2026/10/1 3:49:41 阅读更多 →
C++内存越界溢出:无符号指针算术的底层真相

C++内存越界溢出:无符号指针算术的底层真相

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 3:48:40 阅读更多 →

最新新闻

车队综合业务管理系统:从需求分析到技术落地的完整实践

车队综合业务管理系统:从需求分析到技术落地的完整实践

做过车队综合业务管理系统之后,再回头看这个选题,最大的感受是:它不是靠某一个惊艳算法撑起来的,而是靠“把散落在Excel、微信群和口头电话里的信息,整齐地收进一套系统里”这件事本身。车队综合业务管理系统的核心价值…

2026/10/1 4:58:15 阅读更多 →
16G无独显电脑本地部署AI大模型实战:2026年还能跑什么

16G无独显电脑本地部署AI大模型实战:2026年还能跑什么

1. 先给结论:16G 无独显的机器,2026 年还能跑什么先把话说在前头,免得你花半小时看完才发现方向不对。2026 年这个时间点,一台没有独立显卡、内存 16G 的电脑,本地跑大模型这件事,能跑,但能跑的…

2026/10/1 4:58:15 阅读更多 →
全彩夜视+热成像+AI:夜间搜救无人机多光谱感知系统实战

全彩夜视+热成像+AI:夜间搜救无人机多光谱感知系统实战

1. 从一次山区搜救说起:为什么"全彩夜视热成像AI"是夜间搜救的刚需组合去年秋天,我参与了一次山区失联人员的搜救行动。当时的情况很典型:失联者最后出现在一片海拔1200米左右的林区,天色已暗,地面队伍进山后…

2026/10/1 4:58:15 阅读更多 →
国产AI框架三大升级:飞桨v3.0、MegEngine Lite与MindIR Runtime技术解析

国产AI框架三大升级:飞桨v3.0、MegEngine Lite与MindIR Runtime技术解析

1. 这不是“又一个框架发布”,而是国产AI基建的临界点突破最近朋友圈和行业群刷屏的几条消息,表面看是三家公司的常规动作:百度飞桨宣布v3.0重大升级,旷视开源了新一代视觉推理引擎MegEngine Lite,华为则把昇思MindSpo…

2026/10/1 4:58:15 阅读更多 →
国产深度学习框架实战:飞桨、BaseCV与MindSpore Lite工程落地指南

国产深度学习框架实战:飞桨、BaseCV与MindSpore Lite工程落地指南

1. 这不是一场技术发布会,而是一次国产AI基础设施的集体“筑基”最近刷到“百度飞桨升级、旷视华为宣布开源”这个标题时,我正调试一个在Jetson Nano上跑不动的YOLOv5模型——显存爆了,推理延迟卡在800ms,客户催着要下周上线。那一…

2026/10/1 4:58:15 阅读更多 →
咸鱼之王完美内购版服务端架设教程:从零搭建卡牌游戏服务器

咸鱼之王完美内购版服务端架设教程:从零搭建卡牌游戏服务器

昨天有个读者在群里问我:咸鱼之王完美内购版到底能不能自己架起来玩?我的回答是:能,但千万别一上来就双击启动脚本,然后对着黑窗口干瞪眼。这个项目我前后折腾过三天,中间踩了不少坑,把数据库导…

2026/10/1 4:57:15 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →