自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(293)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 数据库工程师的几个发展方向

从事数据库相关工作已经十几年了,是因为自己内心的执着,一直执着于从事的oracle数据库的相关工作。我是从erp起步的,从技术难度上来说erp的开发不是特别难,数据库的数据量也不是很大,可以作为刚步职场的一个过渡阶段。如果从事erp开发,核心要掌握的就是存储过程的编写,因为大部分公司写后台都是用的存储过程,同时做erp开发的话如果感兴趣的话可以多学习些数据库设计发面的内容,比如表的设计,表与表关系......

2019-09-06 10:57:02 5123

原创 继承的思维:从思维模式到架构设计的深度解析

开发者可以先从抽象的层面定义系统的整体结构和行为,然后逐步细化到具体的实现细节,这也是一个树形可追踪的过程的。比如看到狗、猫、鸟,然后观察它们的行为,随后,我们总结它们有一些共同点,比如都会吃和睡觉,于是抽象出“动物”这个概念,也知道了动物都需要吃和睡。这里的继承用到了一种自上而下的设计方法,开发者可以先从抽象的层面定义系统的整体结构和行为,然后逐步细化到具体的实现细节,这也是一个树形可追踪的过程的。这种从上到下的分解方式,使开发者能够先勾勒出系统的整体框架,再逐步填充细节,确保设计的一致性和连贯性。

2025-11-25 09:33:30 137

原创 AI数据库seekdb 简介

seekdb 简介seekdb 是 OceanBase 专门为开发者打造的一款开箱即用、轻量级的数据库产品,专注于为 AI 应用提供高效的混合搜索能力,支持向量、全文及多模数据的统一存储与检索,是构建 AI 应用的新选择。seekdb 在继承了淘宝和支付宝背后的 OceanBase 数据库核心引擎高性能优势与 MySQL 全面兼容特性的基础上,通过深度优化数据搜索架构,为开发者提供了更符合 AI 应用数据处理需求的各项能力。产品能力矩阵对比。

2025-11-25 09:29:21 265

原创 分库分表后,主键生成方案

我们倾向于在数据库中使用自增主键,是因为自增主键可以迫使数据库的B+树朝着一个方向增长,新数据总是追加到树的末尾,避免了中间节点的分裂,从而获得最佳的插入性能。比如,同一时刻如果有两个用户来创建订单,其中用户ID为876543的先创建,用户ID为123456的后创建,那么很显然用户ID为123456的会产生一个比用户ID为876543更小的订单ID。比如第一张表生成1、17、33、49这样的ID序列,第二张表生成2、18、34、50这样的ID序列,以此类推,每张表的起始值不同,但步长都是16。

2025-11-19 10:07:51 612

原创 数据库分区、分表、分库、分片

垂直分表的优点在于可以提高查询性能,减少数据冗余,但缺点是表的关联查询变得复杂,需要使用多表连接或者多次查询。随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能等待。的数据刚好是一份完整的数据。单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。

2025-11-19 09:55:07 562

原创 H2数据库详解

需要注意的是,虽然H2通过兼容模式尽力模仿其他数据库的行为,但它并不能保证完全重现目标数据库的所有特性,特别是那些特有的功能和高级特性。DB2模式、Derby模式、HSQLDB模式、MSSQLServer模式、Oracle模式:H2也提供了对这些数据库产品的部分兼容支持,以便在相应的兼容模式下运行时,能够处理符合这些数据库SQL方言的查询。H2数据库支持多种数据库兼容模式,这些兼容模式允许H2模拟其他数据库的行为,使得应用程序在开发和测试阶段可以更容易地迁移到不同的生产环境数据库。

2025-11-12 13:21:56 854

原创 Android ROOM 数据库

第一次添加观察者的时候会收到一次数据 onChanged 的回调,其次数据库中的 Car 表的数据发生变化都会收到 onChanged 的观察回调,但是这里我们需要注意一个细节,也是很多博客以及文章过没有提及到的,如果你的 @insert 注解是使用的 replace 策略(OnConflictStrategy.REPLACE),这样插入重复的数据也会导致事务的产生旧数据被替换插入 onChanged 也因为重复数据的插入频繁回调!对象关系映射数据库、其底层还是封装的 SQLite 的能力。

2025-11-12 13:17:40 971

原创 设计一个文件上传和存储服务:云盘的秘密!

文章摘要: 本文探讨了构建文件上传和存储服务的技术方案,重点解决大文件上传的挑战。对于小文件(如2MB照片),采用简单的HTTP POST上传即可。但当处理大文件(如2GB视频)时,面临上传速度慢、网络中断重传和服务器内存消耗等问题。核心解决方案包括:1) 分片上传(将大文件拆分为10MB分片并发上传);2) 断点续传(仅重传失败分片);3) 秒传(通过文件MD5校验避免重复上传)。文中提供了前后端实现代码示例,对比了简单上传和分片续传方案的优缺点,适用于网盘、社交平台等需要高效文件传输的场景。

2025-11-07 10:12:43 609

原创 数据结构常见的八大排序算法

八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。#遍历数组中的所有元素,其中0号索引元素默认已排序,因此从1开始#将该元素与已排序好的前序数组依次比较,如果该元素小,则交换#range(x-1,-1,-1):从x-1倒序循环到0#判断:如果符合条件则交换希尔排序的算法思想:将待排序数组按照步长gap进行分组,然后将每组的元素利用直接插入排序的方法进行排序;每次将gap折半减小,循环上述操作;

2025-11-07 10:06:13 660

原创 数据仓库设计方案

比如商品,单一主键为商品ID,属性包括产地、颜色、材质、尺寸、单价等,但并非属性一定是文本,比如单价、尺寸,均为数值型描述性的,日常主要的维度抽象包括:时间维度表、地理区域维度表等。在现实世界中,每一个操作型事件,基本都是发生在实体之间的,伴随着这种操作事件的发生,会产生可度量的值,而这个过程就产生了一个事实表,存储了每一个可度量的事件。由于最终给业务呈现的是一个能直接使用的业务表,但是表的数据来源有很多,如果有一张来源表出问题了,我们希望能够快速准确的定位到问题,并清楚他的危害范围。

2025-11-03 10:25:56 418

原创 设计数据仓库

数据模型的输出是一系列的关系表,每个表都包含关键字和属性,典型的OLTP数据库设计的规范是避免冗余,所有的属性都必须依赖于主键,不允许传递依赖(即不允许间接依赖主键),这样设计的结果使更新操作的cost最小化,但是,对于一个查询请求,可能会join多张表,而SQL Server对于多表的Join操作的性能优化能力有限,这会导致查询性能急剧降低。由于数据仓库中的数据更新的次数少,对于常用的数据聚合,可以预先把数据计算好,存储到缓存表,也就是说,在数据仓库中,创建不同粒度的关系表。

2025-11-03 10:15:24 394

原创 SQL跑不动?数据倾斜惹的祸!全场景优化方案

与传统关系型数据库相比,大数据 SQL 计算的核心优化挑战在于数据倾斜问题。本文基于笔者在 Hive 及 SparkSQL 平台上的数据倾斜处理实战经验(其他引擎可能存在差异),聚焦于以下核心内容:计算框架及数据倾斜简介数据倾斜典型发生场景数据倾斜的识别方法数据倾斜的解决方案(参数调优、SQL 改写)各计算引擎版本持续迭代,核心计算机制虽大体相似,但具体行为请以实际使用版本为准。一、计算框架及数据倾斜简介数据倾斜的本质在于任务分配不均。具体而言,当一个任务被拆分为多个子任务分发给不同执行单元处理时,若部

2025-10-29 09:28:16 410

原创 大数据SQL窗口函数详解

行2: 100 + 200 = 300。行3: 300 + 180 = 480。行4: 480 + 300 = 780。

2025-10-29 09:12:22 582

原创 图形数据库Neo4J简介

最近我在用图形数据库来完成对一个初创项目的支持。在使用过程中觉得这种图形数据库实际上挺有意思的。因此在这里给大家做一个简单的介绍。NoSQL数据库相信大家都听说过。它们常常可以用来处理传统的关系型数据库所难以解决的一系列问题。通常情况下,这些NoSQL数据库分为Graph,Document,Column Family以及Key-Value Store等四种。这四种类型的数据库分别使用了不同的数据结构来记录数据。因此它们所适用的场景也不尽相同。其中最为特别的便是图形数据库了。可以说,它和其它的一系列NoSQL

2025-10-27 16:00:14 1046

原创 大数据-136 - ClickHouse 集群 表引擎详解 选型实战:TinyLog/Log/StripeLog/Memory/Merge

场景:需要在小数据/临时表/日志落地/多表拼读里做权衡,常被 MergeTree “杀鸡用牛刀”。结论:用这套选型表 + MRE + 并发/文件核验脚本,10 分钟跑通 5 个引擎的核心差异。产出:引擎的测试所有详细过程,附带SQL等内容版本矩阵项值备注件已验证ClickHouse Server 23.x/24.x单机 + 本地磁盘客户端clickhouse-client–multiquery 演示90秒原理TinyLog:每列各一个 .bin 压缩文件,追加写;

2025-10-27 15:54:36 661

原创 数据库建表规范

(有时并不想完全删除表中的该条记录,而是采用逻辑删除,也称为软删除,即将is_deleted标记为1)二. 表中必备字段虽然因为业务或者储存信息的不同,表中的字段不可能都相同,但有的字段建议每个表中都要有。我待过的第一家公司,几乎所有表都采用guid(uuid)作为主键,这是一种由算法随机生成的数字标识符,通常以32个十六进制数字表示,就像下图中这样的:这样的设计确保了主键的全局唯一性,不暴露数据的生成顺序或业务逻辑,可以更好地保护数据隐私。外键的作用是维护数据的完整性,确保表之间的关联关系正确。

2025-09-18 10:08:54 894

原创 常用SQL语句和语法总结

19.视图:视图可以理解成一张表,只不过它是一张虚拟表,其本身并不存储数据,而是基于一个或多个基础表的查询结果定义而成(它底层对应SELECT查询语句)。4.基础增删改查SELECT * FROM 表名;FROM 表ALEFT JOIN 表BON 表A.关联列= 表B.关联列WHERE 表A.列=xx AND 表B.列=xxx当仅通过一张表无法满足查询要求时,会进行多表关联,写join语句时,首先要清楚两张表之间的关系,找到合适的关联字段,切不可认为只要是两张表中都有的字段就能关联,这样可能导致笛卡尔积。

2025-09-18 10:04:47 265

原创 告别慢查询:让SQL JOIN多表查询速度变快

慢查询就像数据库里的 “慢车”,容易拖慢整体速度。多表关联查询更麻烦:数据量大时像在海量文件里翻找,逻辑冗余又会做无用功,很容易卡壳。下面以订单关联查询为例,从逻辑到索引、实际应用场景,我们一起来优化慢查询:(篇幅所限,不延伸,不拓展;所有代码块和表格均可左右滚动)一、原始查询-- 原始查询:直接关联三张表并在最后过滤条件,存在性能问题– 从orders表(别名o)、users表(别名u)、products表(别名p)关联查询– 关联条件:orders表的user_id等于users表的id,order

2025-09-15 09:58:27 786

原创 数据库连接池的实现及原理

对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。对于共享资源,有一个很著名的设计模式:资源池。该模式正是为了解决资源频繁

2025-09-12 10:09:12 766

原创 Python 类的正确打开方式:从新手到进阶的第一步

学 Python 的人,大多数都会在某个阶段被“类”卡住。刚接触的时候,很多人都会觉得:“这东西好抽象啊,像不像传说中的编程黑魔法?”😵别慌,其实类没那么神秘。你可以把它想成生活里常见的“模具”或者“样板”。就像裁缝做衣服,先得有个样板,才能照着样板去裁布、缝衣服。类就是那个样板,而衣服就是你根据样板做出来的“对象”。今天,我们就把 Python 的类从头到尾聊一遍,不整花里胡哨的玄学,把它拆开、讲透,让你读完之后能说一句:“哦,原来就这回事啊!一、类与对象:从生活例子讲起。

2025-09-12 09:54:14 595

原创 Oracle视图详解

4 with check option: 指定对视图执行的dml操作必须满足“视图子查询”的条件即,对通过视图进行的增删改操作进行"检查”,要求增删改操作的数据, 必须是select查询所能查询到的数据,否则不允许操作并返回错误提示. 默认情况下, 在增删改之前"并不会检查"这些行是否能被select查询检索到.:视图的列名, 列名的个数必须与select查询中列的个数相同;如果连接视图中的一个“基表的键”(主键、唯一键)在它的视图中仍然存在,并且“基表的键”仍然是“连接视图中的键”(主键、唯一键);

2025-09-09 15:46:29 782

原创 oracle 临时表详解

它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMIT)后,临时表的暂时段将被自动截断(TRUNCATE),但是临时表的结构 以及元数据还存储在用户的数据字典中。2:事务级的临时表(默认),这种类型的临时表与事务有关,当进行事务提交或者事务回滚的时候,临时表的数据将自行截断,即当COMMIT或ROLLBACK时,数据就会被TRUNCATE掉,其它的特性和会话级的临时表一致。4 )临时表的数据不会备份,恢复,对其的修改也不会有任何日志信息。

2025-09-09 15:45:09 923

原创 mysql 数据库连接池

连接池管理类的引入主要是为了方便对多个连接池的使用和管理,如系统需要连接不同的数据库,或连接相同的数据库但由于安全性问题,需要不同的用户使用不同的名称和密码。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中, 这些数据库连接的数量是由最小数据库连接数来设定的.无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量.连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中.第一、连接池的建立。

2025-09-03 13:02:35 648

原创 MongoDB数据库简介

什么是MongoDB?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。主要特点MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。

2025-09-03 13:01:17 777

原创 数据库面试题(开发者必看)

第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。(3)它与每个表绑定在一起,表亡,该表的rowid亡,二张表rownum可以相同,但rowid必须是唯一的。其他字段组成的这行记录和主键表示的是同一个东西,而主键是唯一的,它们只需要依赖于主键,也就成了唯一的。唯一索引可以确保每一行数据的唯一性,通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。

2025-09-02 14:28:08 404

原创 mysql索引总结

B+树的非叶子节点不存储数据,叶子节点才会存储数据,每一个叶子节点都表示一个页,一页里面有多行数据,所以很好理解上面所说的B+树索引并不能直接找到一个给定键值的具体行,而是找到数据行所在的页,因为B+树查找只能定位到叶子节点,叶子节点内的比较就需要读进内存,在内存中进行比较最终找到确定的那一行。聚集索引的存储并不是物理连续的,而是逻辑连续的因为聚集索引的页与页之间是双向链表连接,页按照主键的顺序排序,每个页里面的记录也是通过双链表链接,所以物理存储上可以不按照主键顺序排序。辅助索引(非聚集索引、二级索引)

2025-09-02 14:22:07 543

原创 REDIS面试题汇总

当客户端发送一个命令时,Redis Cluster会根据命令所涉及的键来确定对应的槽位,并将命令路由到负责该槽位的节点上。事务中的命令在EXEC命令被调用时才会执行,如果事务中的任何一条命令执行失败,整个事务将回滚,之前执行的命令也会被取消。这确保了事务的原子性。然而,需要注意的是,Redis事务并不是严格的隔离级别,因为在事务执行期间,其他客户端可以对事务中的键进行读写操作。此外,由于Lua脚本在Redis服务器端执行,避免了客户端和服务器之间的网络延迟,提高了整体的执行效率。

2025-08-19 09:23:05 991

原创 安装Redis

无论采用哪种安装方式,Redis 的配置文件通常位于 /etc/redis/redis.conf 或 /usr/local/etc/redis/redis.conf。bash 体验AI代码助手 代码解读复制代码wget http://download.redis.io/releases/redis-6.2.6.tar.gz。bash 体验AI代码助手 代码解读复制代码sudo nano /etc/redis/redis.conf。bash 体验AI代码助手 代码解读复制代码sudo apt update。

2025-08-19 09:20:16 442

原创 项目中如何定义项目范围

在项目管理过程中,定义项目范围的方法主要包括:制定项目范围说明书、明确项目交付物、进行干系人需求分析、设定范围边界、使用工作分解结构(WBS)明确工作内容、制定范围管理计划。项目范围说明书明确规定项目的目标、交付成果、项目范围边界、验收标准及约束条件,避免范围蔓延和模糊化,为项目成功提供清晰的方向。明确、完整的范围说明书能够减少项目执行中的误解和冲突,提高项目的整体执行效率。通过以上系统性的方法与流程,可以高效准确地定义项目范围,显著提升项目的成功率与效率,避免因范围模糊和扩张导致的项目失败。

2025-08-12 09:57:50 385

原创 PMO和PM 的岗位区别是什么

矩阵式管理跟传统的职能管理最大的不同是,职能管理模式下每个人只听一个领导的,而矩阵式管理下一个人至少要听两个人的,一个是职能领导,一个是项目相关领导。PM是对公司高层负责🛍️,负责从项目的投资决策开始到项目结束的全过程进行计划、组织、指挥、协调、控制和评价,关注项目本身,确保项目资源的有效利用,以实现项目目标。PMO要站在企业的高度去管理🌍,确保项目目标与企业战略对齐,并提供工具、系统支持,监控进度与绩效,管理风险与质量控制。PM 就能根据需要和对“资源池”里的人的能力,挑选合适的人做项目。

2025-08-12 09:54:33 1263

原创 性能优化篇:SQL数据库查表速度优化

SQL数据库查询的性能优化是确保数据库能够快速响应和高效处理请求的关键。以下是一些常见的SQL数据库查询性能优化方法:索引优化:创建适当的索引:为经常在WHERE子句中使用的列、JOIN操作涉及的列以及排序操作涉及的列创建索引。避免过多的索引:虽然索引可以提高查询速度,但过多的索引会导致写操作变慢,因此需要平衡读取和写入性能。覆盖索引:如果一个索引包含了查询所需的所有列,数据库可以直接从索引中获取数据,而不需要访问表数据,从而加快查询速度。

2025-08-05 09:26:41 993

原创 梧桐数据库表格式的介绍

特性ROWORCHudiMAGMAAP行/列存储行行列混存行列混存行列混存存储格式自定义存储格式兼容标准 ORC 格式兼容 Apache Hudi 表格式自定义存储格式是否支持新执行器不支持支持支持支持压缩支持 snappy , zlib支持 lz4 , snappy , zstd , zlib支持 lz4 , snappy , zstd , zlib自动选择压缩算法,不需要用户指定UPDATE / DELTE支持支持支持支持INDEX不支持不支持不支持支持。创建snappy压缩格式的row表。

2025-08-05 09:23:25 917

原创 事务和锁---事务(Transaction)

如果执行了ROLLBACK,那么之前所有的操作都会被撤销,例如:如果A在执行完上述UPDATE操作后告诉B,让它查看一下自己的账户,天真的B以为自己收到了A的500,结果A不讲武德的对上述操作进行ROLLBACK,那么一切仿佛都没有发生:记得我刚开始工作的时候,害怕更新错或者删错数据,每次遇到执行重要数据的update或者delete时,都在事务中进行,确保没问题后再提交(如果是大公司,数据库要处理的业务很多,不要这样做,事务没提交可能会导致阻塞,一定要记得快速提交)。工作中,需要根据实际业务的需。

2025-08-04 08:58:40 1210

原创 oracle 会话

后台进程PMON会每隔一段时间,就会检测用户连接状况,如果连接已断开,PMON会清理现场,释放相 关的资源。一个会话中的提交不会影响该连接上的 任何其他会话。使用高级Oracle Net特性(如连接池)时,客户可以删除一条物理连接,而会话依然保留(但是会话会空闲)。数据库的活跃会话并发数也是有上限的。当SQL运行变慢,新的SQL语句 从应用服务器源源不断的涌进数据库时,oracle 处理不过来会导致活跃会话数和总会话数升高。Oracle会话是指与数据库的连接,它可以包含多个SQL语句、事务和会话参数设置。

2025-08-04 08:48:32 974

原创 oracle里面concat函数用法,oracle wm_concat函数用法-

wmsys.wm_concat函数,它的作用是以’,’链接字符。个人觉得这个用法比较有趣.

2025-07-22 09:48:53 497

原创 merge into语句用法

有时我们需要将一张表中所有数据插入到另外一张表中,此时就可以添加常量过滤谓词来实现,让其只满足匹配或不匹配,这样就只有update或者只有insert,这里我们要无条件全插入,则只需要将on中条件设置为永假。例如,将营销活动数据批量更新到客户表中,同时处理匹配与不匹配的情况。作用:判断b表和a表是否满足on中的条件,如果满足则用b表中的数据去更新a表,如果不满足,则将b表中的数据插入到a表。执行上述语句之后a_merge表的数据如下:可以发现仅仅更新了AID=1的year字段,没有插入AID=4的数据。

2025-07-22 09:44:44 1022

原创 工作中必须知道的JavaScript内存泄漏

如果id为Node的元素从DOM中移除,该定时器仍会存在,同时,因为回调函数中包含对someResource的引用,定时器外面的someResource也不会被释放。并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。然后,它会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉。通过设置arr为null,就解除了对数组[1,2,3,4]的引用,引用次数变为 0,就被垃圾回收了。

2025-07-20 14:25:46 888

原创 Spring 当中的Bean 作用域

启动多个线程,也是会存在多个,user对象的地址的,同时调用多次无参数构成方法() ——> 是多例 的。其实这个并不是IDE工具的问题,而是,我们其他的对应的scope其他属性的值,是需要在特定的情况下才有用的。的形式存在,可以在bean标签中指定 scope属性的值为:prototype,这样Spring会在每一次执行getBean()方法的时候创建Bean对象,调用几次则创建几次。对应配置的 bean 的类是 User 这个类 ,为了方便辨析,简单明了,这个 类,就不设置属性了。

2025-07-14 09:01:18 923

原创 5 个理由告诉你为什么有了 JS 还要用 TypeScript

小项目还好,项目一大,团队一多,类型混乱就会导致各种难以发现的bug,甚至上线后才暴雷,影响开发效率和用户体验。归根结底,TS 让代码更安全、开发更高效、协作更顺畅、体验更丝滑。有了类型约束,团队成员只要看类型定义就能明白怎么用,不用再靠口头说明或文档补充,协作效率大大提升。你只需要在关键地方声明类型,其他地方 TS 会帮你自动推断,大大减少了重复劳动。这些功能在 JS 里是做不到的,TS 让开发更高效、更安全、更快乐!// ❌ 报错:参数类型不匹配。JS 弱类型,容易埋坑,TS 静态类型,提前发现错误;

2025-07-14 08:59:16 571

原创 mysql 数据库语句优化

如SQL:SELECT * FROM A order by rand() limit 10 优化为:SELECT * FROM A WHERE id >= ((SELECT MAX(id) FROM A)-(SELECT MIN(id) FROM A)) * RAND() + (SELECT MIN(id) FROM A) LIMIT 10。

2025-07-11 10:07:57 345

MySQL数据库基础教程.

mysql 基础知识 MySQL安装 基本数据类型

2015-12-01

数据库 教程

oracle 数据库基础 数据库的管理员应该掌握的

2015-12-01

某银行的数据库项目, 数据挖掘/数仓项目 后端jjava ,oracle 数据库

数据挖掘/数仓项目 包括技术架构(数据分层设计),逻辑架构,开发流程、数据字典 由于银行数据比较分散,需要建立一个以客户个人为基本单位的客户全景视图的数据

2024-05-17

oracle 数据库sql 语句面试题,北京一家软件公司的面试题,难度中等

数据库面试题

2024-05-17

mysql 面试题 其中有答案

mysql 面试题包括答案,问题难度中等

2023-11-19

Eclipse中连接数据库的详细步骤

Eclipse中连接数据库

2023-11-02

eclipse连接数据库的详细步骤

eclipse怎么连接数据库

2023-11-02

oracle 数据库从入门到 开发课程

包括教学笔记 加习题

2022-07-18

数据挖掘和大数据处理经验笔记

1.学习数据挖掘的整体流程及相关的数据库编程技能 2.理解数据清洗,数据整合,数据建模的概念 3. 学习处理海量数据包括如何建表,如何快速查询,插入数据。

2020-09-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除