新闻详情

新闻详情

首页 / 资讯中心 / 详情

图数据库、关系型与NoSQL选型实战:从数据模型到混合架构

发布时间:2026/9/19 15:00:45来源:尧图网络
图数据库、关系型与NoSQL选型实战:从数据模型到混合架构
数据库选型这件事我踩过的坑比吃过的盐还多。早些年做用户画像系统团队里两拨人吵得不可开交一拨坚持用MySQL理由是数据量不大加个索引就够了另一拨非要上图数据库说关系查询性能能提升几十倍。最后折中上了MongoDB结果三个月后因为多跳关系查询慢得离谱又灰溜溜地迁回图数据库。这件事让我意识到图数据库、关系型数据库、NoSQL数据库这三者之间的选择从来不是哪个更好的问题而是哪个更适合当前场景的问题。很多人对这三类数据库的认知停留在关系型表格、NoSQL键值对、图数据库节点和边这种表面层次但真正到了选型的时候往往被各种参数和宣传术语绕晕。这篇内容就是想把这三类数据库的底层逻辑、适用边界、性能特征和实操选型方法讲透不管你是刚接触数据库的新手还是正在做技术选型的架构师都能从中找到可以直接参考的判断依据。1. 三类数据库的本质差异从数据模型说起1.1 关系型数据库用二维表描述世界关系型数据库的核心思想可以用一句话概括所有数据都能装进二维表里。一张表由行和列组成每一行代表一条记录每一列代表一个字段。表与表之间通过外键建立关联查询时用JOIN把多张表拼在一起。这个模型从1970年E.F.Codd提出关系模型开始统治了数据库领域四十多年不是没有道理的。它的优势在于结构严谨、一致性极强。你定义了一张用户表字段类型、长度、约束都写得明明白白想插入一条不符合规范的数据数据库直接拒绝。这种强约束在金融、电信、ERP等对数据准确性要求极高的场景里是刚需。另外SQL语言经过几十年发展已经成为数据操作的事实标准生态成熟度是其他类型数据库难以企及的。但关系型数据库的短板也很明显。当数据之间的关系变得复杂比如社交网络里的好友的好友的好友用SQL写就是三层JOIN嵌套每层JOIN都要扫描大量数据性能呈指数级下降。我实测过一个场景在MySQL里查四度好友关系数据量到百万级时查询时间从毫秒级飙升到十几秒。这不是MySQL不行而是关系模型本身不擅长处理这种深度关联查询。1.2 NoSQL数据库为特定场景放弃通用性NoSQL的全称是Not Only SQL它不是一个具体的数据库而是一大类数据库的统称。常见的NoSQL类型包括键值存储如Redis、文档数据库如MongoDB、列族数据库如HBase、图数据库如Neo4j等。它们的共同特点是放弃了关系型数据库的严格表结构和强一致性约束换取了水平扩展能力和特定场景下的高性能。以文档数据库为例MongoDB把数据存成类似JSON的文档每个文档可以有完全不同的字段结构。这种灵活性在快速迭代的业务里非常实用——产品经理今天说要加个用户标签字段明天说要改成用户分组用关系型数据库得改表结构、写迁移脚本用MongoDB直接插入新字段就行老数据不受影响。但NoSQL的灵活是有代价的。缺乏统一的查询语言每种NoSQL数据库都有自己的API和查询语法学习成本高事务支持参差不齐很多NoSQL数据库只支持单文档事务跨文档的ACID事务要么不支持要么性能很差数据一致性需要开发者自己保证最终一致性模型下你读到的数据可能不是最新的。这些特性决定了NoSQL适合做特定场景的补充而不是全面替代关系型数据库。1.3 图数据库把关系作为一等公民图数据库的数据模型只有三个核心概念节点Node、边Edge、属性Property。节点代表实体边代表实体之间的关系属性和节点、边都可以绑定。这个模型最精妙的地方在于关系是独立存储的而不是通过外键计算出来的。在关系型数据库里查张三的朋友需要拿张三的ID去好友表里扫描匹配在图数据库里张三这个节点本身就挂着指向他朋友的边顺着边走就行不需要扫描全表。这个差异在浅层查询时可能不明显但在多跳查询时就是天壤之别。我做过一个对比测试在千万级节点的社交网络数据上查三度好友Neo4j平均耗时50毫秒而MySQL需要8秒以上差距超过160倍。图数据库的另一个优势是查询语言更贴近人类思维。Cypher查询语言写出来是这样的MATCH (a:Person)-[:FRIEND]-(b:Person)-[:FRIEND]-(c:Person) RETURN c读起来就是找a的朋友的朋友c非常直观。而SQL要实现同样的逻辑得写三层JOIN可读性差很多。不过图数据库也不是万能的。它不擅长做聚合统计比如计算所有用户的平均年龄图数据库的性能远不如关系型数据库水平扩展难度大因为图数据的分片会切断边导致跨分片查询性能骤降生态成熟度相对较低工具链、运维经验、人才储备都比不上关系型数据库。2. 性能对比不同查询模式下的真实表现2.1 浅层查询关系型数据库并不落后很多人以为图数据库在所有场景下都比关系型数据库快这是个误解。在浅层查询和聚合查询场景下关系型数据库往往表现更好。我做过一组对比测试数据规模是100万用户、平均每人50个好友关系。查询某个用户的直接好友列表一跳查询MySQL用索引扫描平均耗时2毫秒Neo4j平均耗时3毫秒。差距不大甚至MySQL略快。原因是这种查询在关系型数据库里就是一次简单的索引查找而图数据库虽然不需要JOIN但图遍历本身也有开销。再看聚合查询统计每个城市的用户数量。MySQL用GROUP BY语句100万数据平均耗时120毫秒Neo4j需要遍历所有节点并分组平均耗时800毫秒以上。图数据库的存储结构决定了它不擅长做全量扫描和聚合运算这是选型时必须注意的边界。2.2 多跳查询图数据库的绝对主场当查询深度增加到三跳以上图数据库的优势就开始碾压式显现。还是那组100万用户的数据查询三度好友朋友的朋友的朋友查询深度MySQL耗时Neo4j耗时性能差距一跳2ms3msMySQL略优二跳180ms8ms图数据库快22倍三跳8.2s50ms图数据库快164倍四跳超时60s320ms无法比较这个表格的数据很能说明问题。关系型数据库的多跳查询性能随深度呈指数级下降因为每增加一跳就多一层JOIN每层JOIN都要做大量的集合运算。而图数据库的性能随深度呈线性增长因为它是顺着边走每多一跳只是多遍历一层邻居节点。注意这个对比的前提是关系型数据库没有做特殊的优化。如果提前把多跳关系物化成冗余表MySQL的性能也能提升但代价是存储空间暴增和数据更新时的同步复杂度。图数据库的优势在于不需要这种作弊手段就能达到高性能。2.3 写入性能各有千秋写入性能的对比要分场景看。单条插入关系型数据库因为有事务日志和索引维护通常比图数据库慢一些但差距不大。批量写入NoSQL数据库如MongoDB的写入吞吐量通常最高因为它可以牺牲一致性换取吞吐量。带关系的写入图数据库反而有优势因为插入一个节点和它的边是一次原子操作而关系型数据库需要先插主表再插关联表还要维护外键约束。我在实际项目里总结的经验是如果写入模式是大量独立的简单记录选NoSQL如果写入模式是实体和关系同时写入选图数据库如果写入模式是需要强事务保证的复杂业务操作选关系型数据库。3. 选型决策框架从业务需求倒推技术方案3.1 先问三个问题排除明显不合适的选项选型最怕的就是一上来就对比参数那样很容易陷入细节。我的做法是先问三个问题快速排除掉明显不合适的选项第一个问题你的核心查询模式是什么如果80%以上的查询都是根据主键查详情或条件过滤聚合统计关系型数据库或文档数据库就够了不需要上图数据库。如果核心查询是找两个实体之间的路径或找某个节点的N度关系图数据库是首选。第二个问题数据之间的关系复杂度如何如果实体之间基本独立关系只是简单的从属关系比如订单属于用户关系型数据库的外键完全够用。如果实体之间是多对多、网状关联而且经常需要跨多层查询图数据库的优势才能体现。第三个问题一致性和扩展性哪个更重要如果业务不能容忍数据不一致比如金融交易关系型数据库是稳妥选择。如果业务可以接受最终一致性而且需要水平扩展来支撑海量数据NoSQL更合适。这三个问题问下来基本能确定大方向。接下来才是具体的产品选型和参数调优。3.2 混合架构成年人全都要实际生产环境里很少有系统只用一种数据库。更常见的做法是混合架构用关系型数据库存核心业务数据用NoSQL做缓存和会话管理用图数据库做关系分析和推荐。我参与过的一个电商推荐系统就是这么设计的MySQL存订单和商品基础信息Redis做购物车和热点缓存Neo4j存用户-商品-品类的交互关系图用于实时推荐。查询买了A的用户还买了什么时先走Neo4j找到候选商品再回MySQL查详情和库存。这种架构的复杂度确实更高但每个数据库都在做自己最擅长的事整体性能和开发效率反而更好。混合架构的关键是明确数据边界和同步策略。哪些数据以哪个数据库为准数据变更时如何同步这些问题必须在设计阶段就想清楚否则后期数据不一致的排查成本极高。3.3 一个实用的选型检查清单为了方便你直接套用我整理了一个选型检查清单按优先级排序检查项关系型数据库NoSQL图数据库需要ACID事务强烈推荐部分支持支持但性能一般多跳关系查询3跳以上不推荐不推荐强烈推荐灵活的数据结构不推荐强烈推荐一般水平扩展需求一般强烈推荐不推荐聚合统计查询强烈推荐一般不推荐路径查找/最短路径不推荐不推荐强烈推荐生态成熟度要求高强烈推荐一般一般这个清单不是绝对的但能帮你快速判断。比如你的场景是社交网络实时推荐多跳查询和路径查找是核心需求那图数据库就是必选项其他方面的不足可以通过混合架构来弥补。4. 实操中的坑与经验从理论到落地的距离4.1 图数据库不是银弹这些场景别用它我见过太多团队因为图数据库听起来很酷就盲目上马结果发现根本不合适。以下几种场景我建议你慎重考虑图数据库场景一以聚合统计为主的报表系统。图数据库做GROUP BY、SUM、AVG这类操作性能很差因为它的存储结构不是为全量扫描设计的。如果你的系统主要是出报表、做BI分析关系型数据库或列式存储如ClickHouse更合适。场景二数据量巨大但关系简单的日志系统。日志数据的特点是写入量大、关系简单最多就是属于哪个服务这种从属关系用图数据库存储纯属浪费Elasticsearch或时序数据库更合适。场景三团队没有图数据库运维经验。图数据库的运维和调优跟关系型数据库差异很大内存配置、索引策略、查询计划分析都有独特的门道。如果团队里没人懂上线后遇到性能问题会很被动。4.2 关系型数据库的图查询能撑多久很多团队在项目初期为了省事直接用关系型数据库模拟图查询。比如用一张edges表存所有关系查询时用递归CTE公用表表达式来实现多跳遍历。这种做法在数据量小的时候没问题但有几个临界点需要注意临界点一数据量超过百万级。递归CTE的性能会明显下降因为每次递归都要扫描edges表。我实测过100万条边数据下三跳查询耗时约3秒勉强能用到500万条边时同样的查询超过30秒基本不可用。临界点二查询深度超过三跳。递归CTE的深度每增加一层执行时间大约翻3-5倍。四跳查询在百万级数据下就可能超时。临界点三并发查询增多。递归CTE对数据库CPU的消耗很大几个并发查询就能把CPU打满影响其他业务的正常查询。所以我的建议是如果预估数据量会超过百万级或者查询深度会超过三跳或者并发量较高尽早迁移到图数据库不要等到性能问题爆发了再动手那时候迁移成本更高。4.3 数据迁移的实操细节从关系型数据库迁移到图数据库最容易出问题的环节是数据模型转换。关系型数据库里的多对多关系通常用中间表表示迁移到图数据库时中间表应该转换成边而不是节点。这个转换逻辑听起来简单但实际操作时容易搞混。举个例子用户和商品之间的购买关系在MySQL里是user_id、product_id、purchase_time三列组成的中间表。迁移到Neo4j时应该创建(:User)-[:PURCHASED {time: ...}]-(:Product)这样的边而不是创建一个Purchase节点再分别连到User和Product。前者查询更高效后者虽然也能用但多了一层遍历。另一个坑是索引策略。图数据库的索引和关系型数据库完全不同。Neo4j里需要为经常作为查询起点的节点属性创建索引比如User节点的userId属性。如果不建索引每次查询都要全图扫描性能惨不忍睹。我见过一个案例迁移后查询慢了100倍排查半天发现是忘了给关键属性建索引。提示迁移前先用小批量数据做验证确认查询性能和结果都符合预期后再全量迁移。迁移后要做数据一致性校验确保没有丢数据或关系错乱。5. 常见误解与真相打破几个流行说法5.1 NoSQL比关系型数据库快这个说法太笼统了容易误导人。NoSQL的快是有条件的在特定场景下如键值查询、文档插入NoSQL确实比关系型数据库快因为它放弃了事务、约束、规范化等开销。但在复杂查询场景下NoSQL可能比关系型数据库慢得多因为它缺乏成熟的查询优化器。举个例子MongoDB插入文档的速度确实比MySQL快因为不需要维护外键和事务日志。但如果你要做一个多表关联的复杂查询MongoDB要么用$lookup性能一般要么在应用层做多次查询再拼接代码复杂度高整体效率未必比MySQL的JOIN高。所以正确的说法是NoSQL在特定场景下比关系型数据库快但不是所有场景都快。选型时要看具体查询模式不能一概而论。5.2 图数据库只能做社交网络这是对图数据库最大的误解。图数据库的适用场景远不止社交网络任何以关系为核心的查询场景都能用。我整理了几个典型的应用场景反欺诈检测在金融领域欺诈行为往往表现为异常的关系模式比如多个账户共用同一个设备、同一个IP、同一个收货地址。用图数据库可以快速识别这些异常模式比传统规则引擎更灵活。知识图谱企业内部的文档、产品、人员、项目之间存在复杂的关联关系用图数据库构建知识图谱可以实现智能搜索和推荐。IT运维服务器、应用、数据库、网络设备之间的依赖关系天然就是图结构用图数据库做故障根因分析可以快速定位问题源头。供应链管理供应商、物料、产品、仓库之间的流转关系也是图结构用图数据库做供应链优化和风险预警。这些场景的共同点是核心价值在于关系本身而不是单个实体的属性。只要符合这个特征图数据库就值得考虑。5.3 关系型数据库要淘汰了每隔几年就有人喊关系型数据库要淘汰了但事实是关系型数据库依然是市场份额最大的数据库类型。原因很简单大多数业务场景的数据关系并不复杂关系型数据库的成熟度、稳定性、生态优势无可替代。NoSQL和图数据库是在特定场景下对关系型数据库的补充而不是替代。一个健康的系统架构应该是多种数据库各司其职而不是追求用一种数据库解决所有问题。我在实际项目里的经验是关系型数据库做核心业务存储NoSQL做缓存和特定场景优化图数据库做关系分析这个组合能覆盖绝大多数业务需求。6. 给不同阶段团队的建议6.1 初创团队先用关系型数据库别过早优化初创团队最大的特点是业务变化快、数据量小、人手有限。这个阶段最忌讳的就是过度设计上来就搞微服务多数据库混合架构结果维护成本高得离谱业务还没跑起来就被技术复杂度拖垮了。我的建议很直接初创阶段就用关系型数据库MySQL或PostgreSQL把所有数据都放进去。数据量到百万级之前关系型数据库的性能完全够用。等到业务稳定了、数据量上来了、性能瓶颈出现了再考虑引入其他数据库。这个策略的核心逻辑是延迟决策保留选择权。早期用关系型数据库不会锁死你的技术路线因为数据模型是通用的后期迁移到其他数据库虽然麻烦但并非不可能。而过早引入多种数据库反而可能因为选型错误而付出更大代价。6.2 成长型团队按场景拆分逐步引入当业务进入快速增长期数据量突破百万级性能问题开始显现这时候就需要考虑引入其他数据库了。但不要一次性全换而是按场景逐步拆分。第一步把缓存层独立出来用Redis或Memcached扛住热点查询。这一步改动最小收益最明显。第二步把日志、监控等非核心数据迁移到Elasticsearch或时序数据库减轻关系型数据库的压力。第三步如果确实有复杂关系查询的需求引入图数据库。这一步要谨慎先做小范围试点验证效果后再推广。每一步都要有明确的性能指标和回滚方案确保出问题时能快速恢复。6.3 成熟团队混合架构统一数据访问层成熟团队通常已经有多种数据库并存这时候最大的挑战不是选型而是管理复杂度。不同数据库的查询语言、事务模型、运维方式都不一样如果没有统一的管理规范很容易变成一团乱麻。我的经验是建立一个统一数据访问层把不同数据库的操作封装成统一的接口。业务代码不直接调用具体数据库的API而是通过数据访问层来操作。这样做的好处是业务代码与具体数据库解耦后期更换数据库时改动最小数据访问层可以统一处理缓存、重试、熔断等横切逻辑便于监控和排查问题。当然这个数据访问层本身也有开发和维护成本适合有一定规模的团队。小团队直接调用数据库API反而更简单高效。7. 几个容易被忽略的实操细节7.1 连接池配置小参数大影响不管用哪种数据库连接池配置都是容易被忽略但影响巨大的环节。我见过太多性能问题最后排查下来是连接池配置不合理导致的。关系型数据库的连接池通常配置为最大连接数 CPU核数 * 2 磁盘数但这个公式不是绝对的。实际配置时要考虑业务并发量、单次查询耗时、数据库服务器的承载能力。如果单次查询平均耗时100毫秒业务需要支撑100 QPS那至少需要10个连接。但连接不是越多越好过多的连接会导致数据库上下文切换开销增大反而降低性能。图数据库的连接池配置又有不同。Neo4j的驱动通常建议配置较小的连接池如50-100因为图查询往往耗时较长连接被占用的时间久配置太多连接反而会拖垮数据库。NoSQL数据库如MongoDB的连接池配置相对灵活但要注意读写分离场景下的连接分配避免读操作把连接占满导致写操作饿死。7.2 查询超时设置保护系统的最后一道防线查询超时设置是保护系统的关键手段但很多团队要么不设要么设得太大。我的建议是根据业务可接受的最长响应时间来设置超时而不是根据数据库的最长执行时间。比如一个面向用户的查询接口用户能接受的最长等待时间是2秒那查询超时就应该设为1.5秒左右留出网络传输和序列化的时间。超时后返回降级结果或错误提示而不是让用户一直等。图数据库的查询超时尤其重要因为图遍历的复杂度不可预测一个看似简单的查询可能因为图结构的问题而变成全图扫描。Neo4j支持在查询级别设置超时建议默认开启并设置合理值。7.3 监控指标关注这几个关键数据不同数据库的监控指标各有侧重但有几个通用指标必须关注查询延迟的P99值平均值会掩盖长尾问题P99能反映最慢的那1%查询的真实体验。如果P99远高于P50说明有慢查询需要优化。连接池使用率如果连接池长期处于高位说明连接不够用需要扩容或优化查询。如果长期低位说明资源浪费。缓存命中率对于有缓存层的系统缓存命中率直接决定数据库压力。命中率低于80%就需要排查原因。磁盘IO和CPU使用率这两个是数据库性能的底层指标任何一项接近瓶颈都会导致整体性能下降。图数据库还要额外关注遍历深度分布和内存使用率因为图遍历对内存的消耗很大内存不足会导致频繁的磁盘交换性能急剧下降。7.4 版本升级别跳过太多版本数据库的版本升级是个技术活尤其是跨大版本升级。我的经验是不要跳过太多版本尽量逐个大版本升级。比如从MySQL 5.7升级到8.0最好先升到5.7的最新小版本再升8.0而不是直接从5.6跳到8.0。图数据库的版本升级更要谨慎因为不同版本之间的查询语言和存储格式可能有变化。Neo4j从3.x升级到4.x时查询语法和配置参数都有不少改动直接升级很容易出问题。建议先在测试环境完整验证确认所有查询和业务逻辑都正常后再升级生产环境。升级前一定要备份数据而且备份要验证可恢复性。我见过太多备份了但恢复不了的案例关键时刻掉链子。8. 从实际项目中学到的选型教训8.1 一个失败案例过早引入图数据库几年前我参与一个企业知识管理系统的开发项目初期数据量很小几千个文档但产品经理觉得知识图谱是趋势坚持要用图数据库。结果开发团队花了两周时间搭建Neo4j环境、设计图模型、写Cypher查询上线后发现大部分查询都是根据关键词搜文档和按分类浏览根本用不到图遍历。图数据库的优势完全没发挥出来反而因为团队不熟悉Cypher开发效率比用MySQL低了不少。这个案例的教训是技术选型要跟着业务需求走而不是跟着技术趋势走。图数据库确实强大但如果业务场景不需要复杂关系查询它就是过度设计。8.2 一个成功案例混合架构解决推荐难题另一个项目是电商推荐系统初期用MySQL做推荐核心逻辑是买了A的用户还买了B用SQL的JOIN实现。数据量到500万时推荐接口的响应时间从200毫秒涨到3秒用户投诉明显增多。后来我们做了混合架构改造用Neo4j存储用户-商品-品类的交互关系推荐查询走图数据库商品详情和库存走MySQL热点数据走Redis。改造后推荐接口的P99延迟降到150毫秒而且支持了更复杂的推荐逻辑如朋友买过且评价好的商品。这个案例的成功关键在于我们明确了每个数据库的职责边界图数据库只做关系查询不存商品详情MySQL只做详情查询不做关系遍历。各司其职整体效率最高。8.3 选型决策的后悔最小化原则最后分享一个我常用的决策方法后悔最小化。当你在几个方案之间犹豫不决时问自己如果选错了哪个方案的迁移成本最低比如在用关系型数据库模拟图查询和直接上图数据库之间犹豫时考虑一下如果后期数据量增长关系型数据库撑不住了迁移到图数据库的成本有多高反过来如果图数据库用不上迁回关系型数据库的成本又有多高通常来说从简单方案往复杂方案迁移比反过来容易。所以初期选简单的方案关系型数据库后期按需升级是更稳妥的策略。当然如果业务场景明确需要图数据库的核心能力如多跳查询、路径查找那就一步到位不要为了省事而将就。这个原则不能保证你每次都选对但能保证你选错时的代价最小。在技术选型这件事上避免灾难性错误比追求最优解更重要。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

React Native鸿蒙Picker组件优化与多级联动实践 2026/9/19 16:46:04

React Native鸿蒙Picker组件优化与多级联动实践

1. React Native鸿蒙Picker组件深度解析Picker组件作为移动端开发中最常用的表单控件之一,在React Native跨平台框架中扮演着重要角色。当我们将React Native应用部署到OpenHarmony平台时,Picker组件的实现机制与性能表现与Android/iOS平台存在显著差异。…

阅读更多 →
Android Studio Quail 4与Flutter共存深度指南 2026/9/19 16:46:04

Android Studio Quail 4与Flutter共存深度指南

1. 项目概述:一场被日志误读的“技术站队”风波看到标题“Android Studio Quail 4发布,看日志我以为谷歌放弃Flutter了”,我第一反应不是点开链接,而是下意识打开终端,cd进一个老Flutter项目的android/目录&#xff0c…

阅读更多 →
graphql-engine 的 NoSQL Schema Sampling RFC:基于 MongoDB 采样的自动 Schema 生成方案 2026/9/19 16:46:04

graphql-engine 的 NoSQL Schema Sampling RFC:基于 MongoDB 采样的自动 Schema 生成方案

graphql-engine 的 NoSQL Schema Sampling RFC:基于 MongoDB 采样的自动 Schema 生成方案 【免费下载链接】graphql-engine Blazing fast, instant realtime GraphQL APIs on all your data with fine grained access control, also trigger webhooks on database e…

阅读更多 →
minikube GUI 桌面客户端安装与配置指南:macOS、Windows、Linux 全平台实战 2026/9/19 16:46:04

minikube GUI 桌面客户端安装与配置指南:macOS、Windows、Linux 全平台实战

云原生容器编排CLI开发工具 【免费下载链接】minikube Run Kubernetes locally 项目地址: https://gitcode.com/gh_mirrors/mi/minikube 点击查看 免费下载 minikube 官方为桌面端提供了图形化界面客户端 minikube GUI,本文基于仓库中的官方教程文档&am…

阅读更多 →
轻墨 Verso v0.2.1 2026/9/19 16:46:04

轻墨 Verso v0.2.1

链接:https://pan.quark.cn/s/14d56db99a94轻墨 Verso 是一款基于 Rust Tauri 构建的轻量 Markdown 编辑器,理念是"像预览之于 PDF,轻墨之于 Markdown"——双击 .md 文件即刻打开、阅读、编辑、关闭,不搞笔记库、不导入、不同步、不联网、无追踪。功能上…

阅读更多 →
GPT-5.6 API 走 TaoToken 通道,怎么分别验证 Sol/Terra/Luna 的 prompt caching? 2026/9/19 16:43:03

GPT-5.6 API 走 TaoToken 通道,怎么分别验证 Sol/Terra/Luna 的 prompt caching?

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

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞