Data
文章平均质量分 68
The data column
做人,最重要的就是开心嘛!
你整天瘫在床上,不学习不运动,幻想天上掉馅饼,白天遇事唯唯诺诺,晚上熬夜为情伤感,怀念那点鸡毛蒜皮的小事,这样的你凭什么还认为自己自命不凡?彻底认命摆烂,和自己和解的人很快乐;时刻努力奋斗向上,和人生搏斗的人也很快乐;只有在这两种选择之间摇摆不定、意志不坚的人最可悲,也最痛苦。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL-select ... for update语句详解
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程。原创 2026-05-10 15:34:52 · 365 阅读 · 0 评论 -
MySQL-BinLog是如何做到数据同步的
BinLog 数据同步 =主库记录变更日志(ROW 格式最佳)→ 从库拉取并按顺序回放 → 通过 GTID 或位点定位进度,从而实现最终一致的副本。t=Q239人工智能教程https://www.captainai.net/troubleshooter。原创 2026-05-10 15:21:10 · 421 阅读 · 0 评论 -
SQL-表 order(id, user_id, amount, status, created_at),status 含 SUCCESS。写一个SQL,查询每个用户最近一笔成功的订单记录
分享一个大牛的人工智能教程。希望你也加入到人工智能的队伍中来!外层查询筛选出编号为 1 的记录,即每个用户最近的一笔成功订单。为每个用户的订单按时间倒序编号,最近的一条编号为 1。原创 2026-04-28 22:06:49 · 42 阅读 · 0 评论 -
SQL 各种连接(JOIN)超全总结
INNER JOIN:两张表的交集LEFT JOIN:左表全部 + 交集RIGHT JOIN:右表全部 + 交集FULL JOIN:两张表的并集CROSS JOIN:所有行组合(笛卡尔积)INNER JOIN:交集LEFT JOIN:左表全量 + 匹配RIGHT JOIN:右表全量 + 匹配FULL JOIN:并集CROSS JOIN:笛卡尔积SELF JOIN:自连接:自动匹配同名列t=Q239。原创 2026-04-16 15:55:48 · 793 阅读 · 0 评论 -
如何设计一个高可用的数据存储系统(存滴滴的用户表和订单表)?
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程设计一个高可用的数据存储系统来处理滴滴这样体量的和,是一个典型的的挑战。。下面我会从数据模型、存储选型、高可用架构、关键策略几个方面来详细说明。原创 2026-03-29 21:26:17 · 397 阅读 · 0 评论 -
MySQL数据库的常见索引有哪些?
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程MySQL 数据库的常见索引,按和。原创 2026-03-29 20:49:43 · 206 阅读 · 0 评论 -
MySQL的锁你知道哪些?
Next-Key Lock 称为临键锁,是 Record Lock + Gap Lock 的组合,锁定一个范围,并且锁定记录本身。表锁:通过lock tables 语句可以对表加表锁,表锁除了会限制别的线程的读写外,也会限制本线程接下来的读写操作。元数据锁:当我们对数据库表进行操作时,会自动给这个表加上 MDL,对一张表进行 CRUD 操作时,加的是。而且记录锁是有 S 锁和 X 锁之分的,满足读写互斥,写写互斥。,这样在备份数据库期间,不会因为数据或表结构的更新,而出现备份文件的数据与预期的不一样。原创 2025-06-27 09:52:21 · 745 阅读 · 0 评论 -
那主从复制出现网络问题怎么办,比如数据延迟这些问题?
分享一个大牛的人工智能教程。希望你也加入到人工智能的队伍中来!:对于大事务或资源密集型操作,直接在主库上执行,避免从库的额外延迟。人工智能教程。原创 2025-06-27 09:48:44 · 529 阅读 · 0 评论 -
比如你有订单详情页,下单页这种,怎么区分读写?
分享一个大牛的人工智能教程。希望你也加入到人工智能的队伍中来!订单详情页可接受短暂延迟(如1秒内),如果需强一致性可强制走主库。,通过AOP或中间件自动路由。人工智能教程。:订单详情、列表查询。原创 2025-06-27 09:47:12 · 315 阅读 · 0 评论 -
你提到了读写分离,怎么做?
从库会创建一个专门的 I/O 线程,连接主库的 log dump 线程,来接收主库的 binlog 日志,再把 binlog 信息写入 relay log 的中继日志里,再返回给主库“复制成功”的响应。MySQL 主库在收到客户端提交事务的请求之后,会先写入 binlog,再提交事务,更新存储引擎中的数据,事务提交完成后,返回给客户端“操作成功”的响应。从库会创建一个用于回放 binlog 的线程,去读 relay log 中继日志,然后回放 binlog 更新存储引擎中的数据,最终实现主从的数据一致性。原创 2025-06-27 09:42:17 · 508 阅读 · 0 评论 -
数据库怎么优化,比如一个DB可能在20000TPS?
搭建主从架构, 利用数据库的读写分离,Web服务器在写数据的时候,访问主数据库(master),主数据库通过主从复制将数据更新同步到从数据库(slave),这样当Web服务器读数据的时候,就可以通过从数据库获得数据。也可以将字段多的表分解成多个表,有些字段使用频率高,有些低,数据量大时,会由于使用频率低的存在而变慢,可以考虑分开。:引入缓存层,如Redis,存储热点数据和频繁查询的结果,但是要考虑缓存一致性的问题,对于读请求会选择旁路缓存策略,对于写请求会选择先更新DB,再删除缓存的策略。原创 2025-06-26 20:53:50 · 349 阅读 · 0 评论 -
如果有一条走索引的SQL有千万数据,比如userID、phoneNumber这种,你觉得时间多长是合理的?
分享一个大牛的人工智能教程。希望你也加入到人工智能的队伍中来!(SSD 顺序读性能约 500MB/s,千万数据索引体积通常较小)。(假设索引体积 500MB,顺序读速度 500MB/s),(SSD 环境下随机 I/O 开销可控)。(机械磁盘顺序读速度约 100MB/s)。(如主键索引命中缓冲池)。(顺序扫描索引叶子链表)。原创 2025-06-26 20:47:49 · 510 阅读 · 0 评论 -
MySQL慢查询优化,怎么找慢SQL的?
可以通过 MySQL 的慢查询日志,定位到慢查询的 SQL,然后针对慢查询的 SQL,使用EXPLAIN命令分析SQL执行计划,找出慢查询的原因,比如是否使用了全表扫描,是否存在索引未被利用的情况等,并根据相应情况对索引进行适当修改。分享一个大牛的人工智能教程。希望你也加入到人工智能的队伍中来!原创 2025-06-26 20:39:08 · 350 阅读 · 0 评论 -
MySQL索引分类有哪些?
如果用到了索引,那么查询的时候,可以基于二分查找算法,通过索引快速定位到目标数据。MySQL索引的数据结构一般是B+树,其搜索复杂度为O(logdN),其中 d 表示节点允许的最大子节点个数为 d 个。分享一个大牛的人工智能教程。希望你也加入到人工智能的队伍中来!如果查询的时候,没有用到索引就会全表扫描,这时候查询的时间复杂度是O(n)。索引类似于书籍的目录,可以减少扫描的数据量,提高查询效率。MySQL可以按照四个角度来分类索引。原创 2025-06-26 19:08:13 · 331 阅读 · 0 评论 -
MySQL-HAVING的用法
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.netHAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。下面的示例按产品 ID 对原创 2022-01-10 11:27:06 · 1572 阅读 · 0 评论 -
了解数据库分片
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net原创 2022-01-10 11:09:30 · 657 阅读 · 0 评论 -
MongoDB-分布式集群架构(3种模式)
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net在实际的生产环境中,MongoDB 基本是以集群的方式工作的。集群的工作方式能够保证在生产遇到故障时及时恢复,保障应用程序正常地运行和数据的安全。MongoDB 有三种集群部署模式,分别为主从复制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。Master-Slaver 是一种主从副本的模式,目前已经不推荐原创 2022-01-10 09:58:22 · 2165 阅读 · 0 评论 -
MySQL-事务的使用
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netMySQL事务主要用于处理操作量大、复杂度高的数据。比如:在人员管理系统中删除一个人员,你既需要删除人员的基本资料,也需要删除和该人员相关的信息,这样,这些数据库操作语句就构成一个事务。InnoDB数据引擎的数据库才支持事务。事务处理可以用来维护数据库的完整性,保证成批的sql语句要么全部执行,要么全部不执行。事务用来处理insert、update、del原创 2022-01-10 09:16:20 · 1564 阅读 · 0 评论 -
MySQL-InnoDB数据页结构分析
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net页(Page)是 InnoDB 存储引擎用于管理数据的最小磁盘单位。常见的页类型有数据页、Undo 页、系统页、事务数据页等,本文主要分析的是数据页。默认的页大小为 16KB,每个页中至少存储有 2 条或以上的行记录,本文主要分析的是页与行记录的数据结构。下图是 InnoDB 逻辑存储结构图,从上往下依次为:Tablespace、Segment、Exten原创 2022-01-10 09:08:19 · 689 阅读 · 0 评论 -
数据库-三大范式
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net第一范式:列的原子性,即每列细分的不能再细分了。 第二范式:表的原子性,一张表细分的不能再细分了,一张表就描述一件事。 第三范式:表的每列都和主键直接相关,而不是间接相关。...原创 2022-01-05 13:30:41 · 656 阅读 · 0 评论 -
ElasticSearch的常用查询语句
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net基本的匹配(Query)查询GET /bookdb_index/book/_search?q=guide #查询任一字段包含guide的记录。下面是完整body版的查询:{ "query": { "multi_match": { "query": "guide", "fiel原创 2022-01-05 09:33:02 · 5895 阅读 · 0 评论 -
ElasticSearch的精确查询
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net当进行精确值查找时,会使用过滤器(filters)。它执行速度快,不会计算相关度,且容易被缓存。Term查询会查找指定的精确值。通常查找一个精确值的时候,你不希望对查询进行评分计算,只希望对文档进行包括或排除的计算,所以会使用constant_score查询以非评分模式来执行term查询,如:GET /my_store/products/_search原创 2022-01-05 08:46:43 · 2001 阅读 · 0 评论 -
MySQL的索引是如何实现的
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.netMySQL中索引分三类:B+树索引、Hash索引、全文索引。InnoDB存储引擎中用的是B+树索引。要介绍B+树索引,不得不提二叉查找树、平衡二叉树和B树这三种数据结构。B+树是从它们三个演化来的。二叉查找树:图中为user表建立了一个二叉查找树的索引。节点中存储了键(key)和数据(data)。数据对应user表中的行数据。如果查找id=12原创 2022-01-04 21:39:17 · 38124 阅读 · 20 评论 -
MongoDB的分片
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net分片(sharding)是MongoDB用来将大型集合分割到不同服务器(或者说一个集群)上所采用的方法。Mongo的分片是全自动的,这点和MySQL是不同的。分片的目的:高数据量和吞吐量会对单机的性能造成很大压力,大的查询量会将单机的CPU耗尽,为了解决这个问题,有2个基本方法:垂直扩展(增加更多CPU和存储资源)和水平扩展(将数据集分布在多个服务器上,水原创 2022-01-04 20:51:30 · 712 阅读 · 0 评论 -
MongoDB的索引是如何实现的
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netMongoDB的索引为B-树。B+树和B-树的区别:1、B+树内节点不存储数据,所有data存储在叶节点,导致查询的时间复杂度为logn。而B-树查询时间复杂度不固定,与key在树中的位置有关,最好为O(1)。2、B+树叶节点相连,可增加区间访问性,支持范围查询。而B-树每个节点key和data存储在一起,无法进行区间查找。3、B+树适合外部存储。由原创 2022-01-04 18:27:36 · 669 阅读 · 0 评论 -
数据库-影子表
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net影子表指的是一张真实表“背后”创建的表。当完成建表操作后,可以通过一个原子的重命名操作切换影子表和原表。例如:如果需要创建user表,则可以先创建user_new表,然后填充好数据,最后和真实表切换。drop table if exists user_new, user_old;create table user_new like user;ren原创 2022-01-04 18:12:57 · 5128 阅读 · 0 评论 -
数据库-分库分表
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。这时,就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,数据切分分为两种方式原创 2022-01-04 18:07:29 · 972 阅读 · 0 评论 -
MySQL-事务隔离级别
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net一、事务的基本特性(ACID)1、原子性(Atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个状态。事务在执行过程中发生错误,会被回滚(rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。2、一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有原创 2022-01-02 21:42:55 · 568 阅读 · 0 评论 -
MySQL-SQL优化方式
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net1 尽量使用索引查询,避免全表扫描。2 不要用or,而使用union。3 连续数值查询使用between,不用in和not in。4 where查询条件中不要使用表达式。5 where查询条件中不要使用函数。6 使用inner join、left join、right join代替子查询。7 in()适合B表比A表数据小的情况,exists()适合原创 2022-01-02 20:49:25 · 498 阅读 · 0 评论 -
MySQL-为什么采用B+树作为索引的数据结构
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net索引本身数据量也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储到磁盘上。这样的话,索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级,所以索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数,提升索引效率。常用的查找结构:顺序查找:最基本的查询算法-复杂度O(n),大数据量此算法效率糟糕。二叉树原创 2022-01-02 19:21:24 · 419 阅读 · 0 评论 -
MySQL-数据库的索引类型有哪些
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net使用索引可以大大提高MySQL的检索速度,但是也会降低更新表的速度,索引虽好可不要贪多哦。有哪些索引可供选择呢?1、普通索引最基本的索引,它没有任何限制,用于加速查询。创建方法:a.建表的时候一起创建CREATE TABLE mytable (name VARCHAR(32), INDEX index_mytable_name (name))原创 2022-01-02 18:13:28 · 2196 阅读 · 0 评论 -
MySQL-InnoDB和MyIsam的区别
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net1、InnoDB和MyIsam是什么?InnoDB和MyIsam是MySQL最常用的两种存储引擎。MySQL有多种存储引擎,每种存储引擎有各自的优缺点。可以使用命令"show engines"查看引擎。2、如何使用InnoDB和MyIsam?MySQL 5.5版本以及以后默认使用InnoDB,如果创建表时候不指定存储引擎默认使用InnoDB。如果不想.原创 2022-01-02 17:45:50 · 493 阅读 · 0 评论 -
Java-如何避免SQL注入漏洞
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net1、简单又有效的方法是使用PreparedStatement采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX(如:setString)方法传值即可。好处:(1).代码的可读性和可维护性变好。(2).PreparedStatement尽最大可能提高性能。(3).最重要的一点是极大地提高了安全性。原理:SQL注入只对SQL语句原创 2022-01-02 10:30:09 · 2670 阅读 · 2 评论 -
Java-数据库连接池有哪些优势?
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net1、资源重用由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。2、更快的系统响应速度数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免原创 2021-12-28 21:06:34 · 1293 阅读 · 0 评论 -
MyBatis-如何实现分页
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net1、就是直接使用我们的SQL语句进行分页,也就是在Mapper里面加上分页的语句就好了。比如MySQL添加一个limit 2,4。这种方式弊端很大,比如我们不用MySQL了,所有的代码都要修改。2、使用成熟的框架MyBaits-Plus,它是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。如果你坚持要使用My原创 2021-12-28 13:13:11 · 6127 阅读 · 0 评论 -
MyBatis-#{}和${}的区别是什么
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net1、#{}和${}的区别是什么?(1)使用#{}格式的语法,在MyBatis中会使用PreparedStatement语句来设置值。我们知道使用PreparedStatement有预编译的过程,效率比Statement更高,而且可能防止SQL注入。跟踪断点会看到即将执行的SQL中用“?”做占位符。同时,#{}写法会将传入的数据都当成一个字符串,会对传入的数据原创 2021-12-28 09:03:47 · 1297 阅读 · 0 评论 -
DB-事务隔离级别
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net在一个典型的应用程序中,多个事务同时运行,经常会为了完成他们的工作而操作同一个数据。并发虽然是必需的,但是会导致如下问题:脏读脏读发生在一个事务读取了被另一个事务改写但尚未提交的数据时。如果这些改变在稍后被回滚了,那么第一个事务读取的数据就会是无效的。不可重复读不可重复读发生在一个事务执行相同的查询两次或两次以上,但每次查询结果都不相同时。这通常是由于另一原创 2021-12-12 22:04:07 · 1022 阅读 · 0 评论 -
MySQL日志-RedoLog、UndoLog与BinLog
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netRedoLogRedoLog是InnoDB存储引擎层的日志,又称重做日志,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在实例和介质失败(Media Failure)时,RedoLog文件就能派上用场,如数据库掉电,InnoDB存储引擎会使用RedoLog恢复到掉电前的时刻,以此来保证数据的完整性。在一条更新语句进行执原创 2021-12-12 21:30:47 · 515 阅读 · 0 评论 -
MySQL-逻辑架构图
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net原创 2021-12-12 17:42:36 · 2236 阅读 · 0 评论 -
SQL-DDL和DML的区别
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netDDL和DML之间的主要区别在于:DDL有助于更改数据库的结构,而DML有助于管理数据库中的数据。本质区别DDL代表数据定义语言(Data Definition Language),是一种有助于创建数据库模式的SQL命令。而DML代表数据操作语言(Data Manipulation Language),是一种有助于检索和管理关系数据库中数据的SQL命令原创 2021-12-09 11:37:44 · 2349 阅读 · 0 评论
分享