数据库入门核心:从表结构、索引到事务的实战解析

我在带新人入门的时候,最常听到的一句话是:“数据库到底是个啥?感觉就是个存数据的软件呗。”这话没毛病,但只对了一半。如果只是存数据,Excel也能干,为啥要搞出个专门的“王国”出来?因为数据库解决的从来不是“怎么存”的问题,而是“怎么存得稳、查得快、改得准、挂了还能恢复”的问题。今天这篇,我就用“数据王国”这个比喻,把数据库底层的运作逻辑掰开揉碎讲一遍,再配5道我筛选过的经典题,帮你把脑子里那些零散概念串成一条线。

这篇文章不挑基础,哪怕你完全没写过SQL也能看懂;如果你已经会用增删改查了,重点看后半部分的题目解析和避坑心得,那里面有不少是我在实际项目里踩出来的经验。数据库这个东西,难起来可以研究一辈子,但入门的时候只要把“表、关系、约束、索引、事务”这几个核心概念吃透,你就已经甩开绝大多数“只会背命令”的人了。

1. 由表入道:数据王国的地基是“二维表”,不是“数据库软件”

1.1 为什么是“表”而不是“文件柜”

先想一个问题:你手里有一堆客户信息、订单信息、商品信息,最原始的做法是拿个本子记,或者塞进Excel。Excel和数据库的表看起来都是“行和列”,但本质上有个天大的区别——Excel是给“人”看的,数据库的表是给“机器”和“规则”看的。

机器看数据,讲究的是“严格”。每一列存什么类型,长度多少,能不能为空,有没有默认值,这些都在建表的时候定死了。你在Excel里可以随手在一个数字列里敲个“abc”,数据库里这么干,直接被拒绝执行。这不是死板,这叫“约束”。约束保证了数据的质量,数据质量是整个数据王国的命根子。

在数据库的世界里,一张表的结构被称作“关系模式”,表本身就是“关系”。你把一张表想象成一个王国的户籍本:每个公民(行)都有唯一的身份证号(主键),每项登记内容(列)都有明确规范。没有规矩不成方圆,没有主键的表就是黑户遍地,查数据、改数据、删数据都容易乱套。

1.2 主键:数据王国的身份证

主键(Primary Key)这块我得多说两句。它是每张表里最核心的字段,作用就是唯一标识一行记录。

选主键有两条铁律:第一,不能为空;第二,不能重复。你可能会想:“那我用身份证号当主键不就行了吗?”行,但如果你的业务里没有天然唯一字段呢,比如一张订单表,没有订单号,只能靠“用户ID+下单时间”来拼。这种情况我建议你用自增ID或者一串随机生成的唯一编号。我在实际项目里见过有人用“姓名+手机号”做主键,结果两个同事的手机号录错了,撞了主键,整个表写不进去数据,排查半天才发现是脏数据问题。记住,主键最好用无业务含义的纯ID,业务字段随时可能变,变了主键就崩了。

1.3 字段类型的坑:别把什么都存成字符串

建表的时候,字段类型的选型是新手最爱忽略的。我见过最典型的操作是把手机号存成INT,结果号码显示成“138****”后面被抹位,其实不是显示问题,是数值溢出后被自动转了。还有把日期存成字符串,然后查“最近7天下单用户”的时候,用字符串比较大小,格式一不统一就漏数据。

常用的字段类型,几句话讲明白:

  • INT/BIGINT:整数类型,BIGINT比INT范围大得多,自增主键建议直接BIGINT,别省。
  • DECIMAL(M,D):定点小数,存钱用这个,绝对不要用FLOAT/DOUBLE,浮点数有精度丢失,账算不平。
  • VARCHAR(N):变长字符串,存姓名、地址这种长度不固定的内容。
  • CHAR(N):定长字符串,存身份证号、手机号这种固定长度的,性能比VARCHAR好一点。
  • DATETIME/TIMESTAMP:存时间,TIMESTAMP有2038年问题,能用DATETIME尽量用DATETIME。
  • TEXT/BLOB:存大文本和二进制,能用文件路径代替就别直接往库里塞大文件,库会变得又肥又慢。

这里补一个很多新手不知道的细节:VARCHAR括号里的N是“字符数”而不是“字节数”。如果库的字符集是UTF-8,一个汉字占3个字节,VARCHAR(10)能存下10个汉字,但如果你用VARCHAR(10)去存一个包含数字字母混合的字符串,长度上限是10个字符,不是10个字节。很多报错“Data too long for column”就是这么来的。

2. 数据王国的通用语言:SQL的四大基石操作

2.1 建库建表:先规划,后动手

学习阶段没关系,随便建。工作里建表之前一定要先规划清楚:这张表要存什么?谁要读?谁要写?大概多大的数据量?这些想清楚了再写CREATE TABLE,否则后面改表结构极度痛苦,尤其是表里有数据了之后,ALTER TABLE在大表上可能直接锁表,业务就停了。

我建议每个入门的人练习的时候,建一个“学生管理系统”的库,三个表:学生表、课程表、选课表。这个场景足够经典,把三个表建出来,你就理解了什么叫“实体”和“关系”。

一份基本的学生表创建语句:

CREATE TABLE student ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID', name VARCHAR(50) NOT NULL COMMENT '学生姓名', gender CHAR(1) DEFAULT '男' COMMENT '性别', birth_date DATE COMMENT '出生日期', phone VARCHAR(20) UNIQUE COMMENT '手机号', enrollment_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '入学时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';

这里有几个点值得研究一下:AUTO_INCREMENT是自增,不需要你手动传ID;NOT NULL和DEFAULT一起用,既保证字段必须存在,又允许自动填默认值;UNIQUE约束保证手机号不重复;ENGINE=InnoDB是当前最主流的存储引擎,后面讲事务的时候会专门提。

2.2 增删改查:四个动作,覆盖九成需求

增删改查对应SQL里的INSERT、DELETE、UPDATE、SELECT。这四个单词背下来,你已经会一半SQL了。

查询(SELECT)是所有操作里最常用的,也是把新手和老手区分开的分水岭。最简单的查询就是SELECT * FROM student,但面试和实际项目里,没人会满意你每次都全表扫描。你要学会WHERE条件过滤、ORDER BY排序、LIMIT分页、GROUP BY分组、聚合函数(COUNT/SUM/AVG/MAX/MIN)、JOIN多表连接。这些知识点我不在这里展开,第4节的5道经典题里会逐个过一遍。

写入(INSERT)要注意的一点是批量插入。一次插一条在数据量小的时候无所谓,但如果你要导几万条数据,一条条insert能把人的心态搞崩。直接上批量语法:

INSERT INTO student (name, gender, birth_date, phone) VALUES ('张三', '男', '2000-01-01', '13800000001'), ('李四', '女', '2001-02-02', '13800000002'), ('王五', '男', '2002-03-03', '13800000003');

改成(UPDATE)和删除(DELETE)是风险最大的操作。我就犯过一个经典错误:给一张用户表更新状态,忘了加WHERE条件,一条UPDATE下去,全表的用户状态全变成了同一个值。那几秒钟,脑子是空白的,心跳是加速的。从那以后,我的习惯是先写SELECT把要改的数据查出来看一遍,确认WHERE条件没写错,再改成UPDATE执行。这个习惯也推荐给你。

2.3 WHERE条件的执行逻辑:别被NULL坑了

WHERE这一节我要重点讲NULL。很多新手在看“等值匹配”的时候会默认“空值也能等于空值”,但SQL里NULL是“未知”,不是“空字符串”。拿WHERE phone = NULL去查,永远查不到任何东西,正确写法是WHERE phone IS NULL。

这里有个坑中坑:在JOIN连接的时候,如果连接字段里有NULL,这个连接会直接失败,记录会被悄悄丢弃。我在处理用户表和订单表关联时踩过这个,结果订单统计数一直对不上,查了一上午才发现是有几个订单的user_id存了NULL。生成环境里遇到这种“数据莫名变少”的问题,第一个怀疑方向就是连接字段里有NULL。

3. 数据王国的管理法则:约束、关系与范式

3.1 外键:表与表之间的合同

建表时我们把学生、课程、选课分成三张表,那这三张表怎么产生联系?靠外键(FOREIGN KEY)。外键的意思就是:某一列的值必须来自另一张表的某个字段值,或者必须是NULL。

选课表的设计:

CREATE TABLE course_selection ( id BIGINT AUTO_INCREMENT PRIMARY KEY, student_id BIGINT NOT NULL, course_id BIGINT NOT NULL, score DECIMAL(5,2), CONSTRAINT fk_student FOREIGN KEY (student_id) REFERENCES student(id), CONSTRAINT fk_course FOREIGN KEY (course_id) REFERENCES course(id) );

有了外键约束,你往选课表里插一个不存在的student_id,数据库直接报错,根本插不进去。从数据王国治理的角度讲,这就是“法律条文”——谁都不能往选课记录里塞一个不在籍的学生。

但外键在互联网业务高并发场景下是“奢侈品”。因为外键会影响写入性能,每次插入都要去校验关联表,在大流量写入场景下,很多公司会放弃数据库外键,改在应用层做校验。这是理论知识和实际工程的矛盾点之一,面试的时候如果被问到“你平时写外键吗”,答“看场景,低并发实时性要求高的场景用物理外键,高并发大流量场景用逻辑外键”就非常加分。

3.2 三大范式:数据冗余的克星

范式(Normal Form)是数据库设计的规范,一共六种级别,实际工作中掌握到第三范式就够用了。

第一范式(1NF):每列都不可再分。比如你把兴趣写成“篮球,足球,羽毛球”存在一个字段里,这就违反了1NF,应该拆成三行,或者单拆一张兴趣表。

第二范式(2NF):在1NF基础上,每一列都完全依赖主键,而不是依赖主键的一部分。举个例子,一个选课表的主键如果是(student_id, course_id),那成绩字段score依赖整个主键,没问题;但如果你把“课程老师”也塞进选课表,它就只依赖course_id,不依赖student_id,这就是部分依赖,违反2NF。结果就是同一个课程老师的名字会在几十行里重复,改一次老师名要改几十行。

第三范式(3NF):在2NF基础上,非主键字段不能依赖其他非主键字段。比如订单表里有“用户ID”和“用户手机号”,手机号由用户ID决定,不是直接依赖订单号,这就是传递依赖。应该把手机号留在用户表,订单表只存用户ID。

范式的本质是消除冗余,但现实中见过很多项目为了性能刻意反范式,比如同步一份冗余字段到查询频繁的表里,避免JOIN。这算工程权衡,不犯法,前提是你清楚自己付出了维护一致性的代价。

3.3 综合案例:设计一个简单的博客系统

把前面的知识点揉在一起,我带你设计一个迷你博客系统。这个场景我在讲解时经常用,因为它贴近生活,逻辑也不复杂。

需要四张表:用户表(user)、文章表(article)、分类表(category)、评论表(comment)。

用户表:id、用户名、密码密文、昵称、注册时间。 文章表:id、标题、正文、作者ID(外键指向用户表的id)、分类ID(外键指向分类表的id)、发布时间、状态。 分类表:id、名称、排序值。 评论表:id、内容、文章ID(外键指向文章表id)、用户ID(外键指向用户表id)、评论时间。

这个设计里,文章表不直接存作者名字,只存作者ID,想知道作者名就通过ID去用户表查。为什么?因为作者名字如果改了,文章表里的数据不用动,始终查出来是最新的。如果你写死“作者名”字段,作者改名以后,历史文章全部要跟着改。这个理念,是数据库外键关系最核心的价值:单一事实来源。

4. 进阶修炼:索引与事务,数据王国的两大护法

4.1 索引:让数据王国不再“翻箱倒柜”

没有索引的时候,数据库查一张100万行的表,要一行一行从头扫到尾,这叫全表扫描,耗时可能几百毫秒甚至秒级。加了索引之后,数据库相当于给字段建了一棵查找树,查一次只需要走树的高度,10几层就找到了,耗时瞬间到毫秒级。

索引的选型思路,用不用背B+树原理?面试会问,但实际操作里你只需要知道:索引是排好序的数据结构,它用额外的存储空间换查询速度。对哪个字段建索引,取决于你的WHERE条件、ORDER BY、JOIN字段。

我建议新手的建索引标准:

  • 主键默认就是唯一索引,别重复建。
  • WHERE常用的条件字段,优先建索引。
  • JOIN连接的字段建议建索引,否则多表关联会变成灾难。
  • 区分度低的字段不要建索引,比如“性别”,只有男女两个值,索引根本没有过滤效果,还耗空间。
  • 不要在索引列上做函数运算,比如WHERE DATE(birth_date) = '2001-01-01',这会让索引失效。

说到索引失效,这是新手排查慢查询的第一大头疼点。常见的三个坑:隐式类型转换(字符串列不引号,或数字列存成字符串去比较)、前模糊查询(LIKE '%abc'导致索引失效)、联合索引不按最左前缀原则匹配。这三个记住了,你排查SQL慢查询的思路就有了。

4.2 事务:要么全成,要么全败

你把两个账户之间转账这个业务想一下:从A账户扣100块,往B账户加100块。如果扣完A的钱,数据库突然断电,B的钱没加上,这事就没法交代。事务(Transaction)就是干这个用的,它把一串操作打包成一个整体,要么全部成功,要么全部回滚。

事务的ACID特性是面试必考,但实际理解起来并不难:

  • 原子性(Atomicity):一个事务里的操作要么全部完成,要么全部不做。
  • 一致性(Consistency):事务完成后,数据库从一个合法状态进入另一个合法状态。比如转账后A+B的总金额不变。
  • 隔离性(Isolation):多个事务同时操作同一批数据时,互不干扰。
  • 持久性(Durability):事务提交以后,即使数据库重启了,数据也还在。

InnoDB引擎支持事务,MyISAM引擎不支持,这也是我之前建议ENGINE=InnoDB的原因。

事务的隔离级别有四种:读未提交、读已提交、可重复读、串行化。MySQL默认是“可重复读”。隔离级别低,并发性能好,但可能出现脏读、不可重复读、幻读的问题。这部分内容初学者了解概念即可,真正纠结隔离级别是DBA的活。

4.3 实操示例:用事务保护一笔转账操作

举个例子,我们用事务把转账的完整过程写出来:

START TRANSACTION; UPDATE account SET balance = balance - 100 WHERE user_id = 1; -- 检查更新是否成功,如果余额不足,ROLLBACK UPDATE account SET balance = balance + 100 WHERE user_id = 2; COMMIT;

在你写完第一个UPDATE之后,如果发现user_id=1的账户余额不够扣,你可以立刻ROLLBACK回滚,全程不会产生任何脏数据。这在实际业务代码里往往是通过程序先查询余额、再判断是否足够、再决定提交还是回滚来完成的。

5. 5道经典题:从表结构到查询优化的进阶之路

5.1 第一题:找出每个学生的最高分课程

假设有三张表:student(id, name)、course(id, name)、score(student_id, course_id, score)。问题是“每个学生的最高分课程”。

这个题的核心是子查询和关联。先找到每个学生的最高分,再把这个结果和原表关联起来取课程信息。我教你一个实用的思路:拿一张临时结果去JOIN原始表。临时结果结构是(student_id, max_score),和score表按这两个字段关联,就能得到对应的course_id,再连course表取课程名。这个思路理解了,以后很多“找前几条”“找最大一条”的题都通吃。

5.2 第二题:统计各课程的平均分,只保留平均分大于60的

这题考GROUP BY和HAVING的组合。新手常见的错误是把过滤条件写在WHERE里,但WHERE的执行时机是在分组之前,分组之后的筛选必须用HAVING。这个知识点背下来不如踩一次坑记得牢,我面试的时候问过好几个人,能准确讲出HAVING用途的不超过四成。

5.3 第三题:查询没有选任何课程的学生

这题有三种解法:NOT EXISTS、NOT IN、LEFT JOIN + IS NULL。面试官通常希望看到你至少写出两种。核心逻辑是先找到“有选课的学生ID集合”,然后从学生表里排除。需要提醒的是,如果子查询结果集里出现NULL,NOT IN的结果会意外为空,这是个大坑。用NOT EXISTS或者LEFT JOIN更安全。

5.4 第四题:删除重复数据,只保留最小ID的那条

这题在实际工作中经常会遇到,属于“数据清洗”场景。原理是先把重复数据的最小ID查出来,然后删除“重复但不是最小ID”的记录。写DELETE之前,一定先写一条SELECT验证一下你的条件,不要上来就删。我亲眼见过同事删重复数据把整张表清空的场景,恢复数据花了三个小时,教训够深刻。

5.5 第五题:订单表的分页查询优化

订单表1000万条数据,执行“SELECT * FROM orders ORDER BY create_time LIMIT 800000, 20”,越来越慢。原因很简单:随着偏移量增大,数据库要扫描的记录数越来越多。

优化方案有几种:用覆盖索引简化排序;记录上一页最后一条的create_time,用WHERE条件代替LIMIT偏移;或者先查ID再JOIN回原表。第三种方案效果最好但SQL最复杂。这个问题在生产环境太常见了,值得记下。

6. 避坑实录:新手最常见的错误与排查心得

6.1 经典错误速查表

错误现象常见原因解决方案
查询结果莫名变少JOIN连接的字段有NULL检查关联字段的空值,或用LEFT JOIN并过滤
UPDATE/DELETE影响大量行WHERE条件忘记写或写错先用SELECT验证条件再执行
索引没生效,查询依旧慢列上用了函数或隐式类型转换改写SQL条件,避免左侧函数运算
数据写入报“Data too long”字段长度不够,字符集是UTF-8扩大字段长度或拆表处理
大批量导入时速度极慢一条条INSERT太频繁改成批量INSERT或使用LOAD DATA
事务提交后数据却不见了用了不支持事务的引擎确认ENGINE=InnoDB,检查隔离级别

6.2 慢SQL排查的原点思维

遇到慢查询,第一个反应不是“加索引”,而是“先看执行计划”。执行计划是数据库分析你的SQL后给出的执行方案,它会告诉你走了哪张表的哪个索引、扫描了多少行。在MySQL里用EXPLAIN关键字,在Oracle里是执行计划函数。很多新手分析慢查询,上来就加索引,加到第五个索引还没解决,再回头一看,其实是表的数据分布有问题,或者SQL写法有缺陷。

排查步骤我整理成固定的顺序:先看SQL逻辑是否合理,再看执行计划选择了哪个索引,再看是否出现了隐式类型转换或函数运算,最后考虑优化表结构和索引。按这个顺序走下来,绝大部分慢查询半小时内能定位。

6.3 备份是救命的,不是走形式的

最后必须讲一句:数据库学习阶段,养成备份习惯。我见过太多“手滑清空了表”的事故,不管你是新手还是老手,意外永远在路上。建议至少每周做一次全量备份,重要数据可以开启定期自动备份。在备份的生命里,要顺便测试一下恢复流程——很多团队备份做了三年,真出事的时候才发现备份文件损坏,那才是最绝望的场景。恢复流程不演练,备份等于白做。

7. 写在最后的一点个人体会

数据库这门课入门不难,难的是“知其然,还知其所以然”。同样的SQL,不同的人写出来,性能可能差几十倍。想真正上手,给自己布置个小项目,比如搭一个博客系统、做一个记账小程序,把建表、约束、查询、事务、索引全部用上一遍。踩几个坑,再回来看理论知识,你会发现每个概念都活了。

我自己带新人的时候常说这么一句话:“操作数据库之前,多问自己一遍——这条SQL在真实业务里,会不会给别的查询带来压力?这个表结构,下个月需求一变更,还能不能撑住?”养成这种习惯,你就不只是会写SQL的人,而是真正懂数据王国运作的人。

相关新闻

从MLA到DeepSeekMoE:DeepSeek系列大模型架构演进与技术拆解

从MLA到DeepSeekMoE:DeepSeek系列大模型架构演进与技术拆解

很多人聊大模型架构的时候,总喜欢从Transformer开始铺开,但真正把架构演进讲透的,恰恰要看国内开源模型这几年的实操路线。我自己的感受是,2024年初那会儿大家还在卷榜单,到了年底风向就变了,变成卷单次推理…

2026/10/19 21:09:49 阅读更多 →
顶级投资人称过去只是热身:AI智能跃迁1000倍意味着什么

顶级投资人称过去只是热身:AI智能跃迁1000倍意味着什么

1. 当一位顶级投资人说出“过去只是热身”第一次看到这个访谈标题时,我的直觉反应不是“又在吹AI”,而是注意到一个细节:说这话的人,过去四十年几乎每一次都押中了时代级的技术浪潮。从个人电脑时代的操作系统与芯片,到…

2026/10/19 21:09:49 阅读更多 →
决策树在电信客户流失预测中的实战应用与规则落地

决策树在电信客户流失预测中的实战应用与规则落地

1. 先摸清业务:流失预测到底在解决什么问题接手电信客户流失预测这类项目,很多人第一反应就是找数据集、跑模型、调参出准确率。我之前做过一个运营商侧的流失预警项目,踩过不少坑之后发现,第一步根本不是建模,而是把“…

2026/10/19 21:08:47 阅读更多 →

最新新闻

IM系统用户管理子服务架构设计与踩坑实践:从表结构到缓存策略

IM系统用户管理子服务架构设计与踩坑实践:从表结构到缓存策略

做IM系统,用户管理子服务往往是看起来最简单、坑却最多的那一块。很多人一开始会觉得,无非就是注册、登录、改个昵称、拉个好友列表,有什么好写的?但真正上手做才发现,一个IM系统里最基础的用户服务,牵扯到…

2026/10/19 22:03:35 阅读更多 →
DUT-OMRON数据集上的U-Net二值分割实战:边缘鲁棒与工业落地

DUT-OMRON数据集上的U-Net二值分割实战:边缘鲁棒与工业落地

简介:本资源是一套面向深度学习初学者与图像分割实践者的Unet多尺度分割实战项目,聚焦二值图像分割任务,特别适配DUT-OMRON数据集的端到端训练与推理需求。压缩包共2000个文件,主体为1979张PNG格式的训练/测试图像及对应mask&…

2026/10/19 22:03:35 阅读更多 →
XXE漏洞剖析:从XML外部实体注入到文件读取与SSRF防御

XXE漏洞剖析:从XML外部实体注入到文件读取与SSRF防御

大概在五年前做某次授权测试,目标系统有个不起眼的文件上传接口,响应报文里带着一段 XML 结构。当时随手改了改请求体,把实体声明换成了外部实体,结果直接把服务器上的/etc/passwd读了出来。那是我第一次真正意识到 XXE&#xff0…

2026/10/19 22:02:34 阅读更多 →
编译通过≠代码健康:C++静态检测原理与工具落地指南

编译通过≠代码健康:C++静态检测原理与工具落地指南

编译通过不等于代码健康:C静态检测到底在查什么我做C开发这些年,越来越觉得一个道理:编译器不报错,只是说你的代码符合语法和类型规则,它压根不关心你的逻辑是不是对的、指针是不是悬空的、资源有没有泄漏。很多问题要…

2026/10/19 22:02:34 阅读更多 →
基于Prometheus的MySQL自适应优化系统:从手工调参到自动闭环

基于Prometheus的MySQL自适应优化系统:从手工调参到自动闭环

1. 起因:静态参数与动态负载之间的拧巴 我维护的一套订单查询系统,跑在两个8C16G的实例上,平时QPS稳定在两千左右,配置也自认为调得“差不多了”。某天凌晨两点多,告警平台连续弹了三条: Threads_connecte…

2026/10/19 22:01:31 阅读更多 →
基于Python实现可靠数据传输协议:从停等到滑动窗口的完整课设指南

基于Python实现可靠数据传输协议:从停等到滑动窗口的完整课设指南

简介:这是计算机网络课程设计场景下的一份Python实现资源包,围绕UDP设计可靠数据传输协议,完整覆盖停等协议、GBN和SR的改进思路。内容对应实验要求,包括单向可靠传输、丢包模拟、双向数据传输以及基于协议的C/S文件传输应用&…

2026/10/19 22:01:31 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →