摘要: 在日常的业务开发中,使用到MySQL的order by对数据进行排序是一个很正常的行为,那么你知道order by是如何工作的嘛? 一、全字段排序 先创建一张user表,字段name,age,address,插入随机数据100w条记录,由于按照name查询,所以给name字段添加索引: alter 阅读全文
posted @ 2024-04-15 13:58 孙半仙人 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 在日常的业务开发中,汇总记录使用select count(*) from t是常见用法,分页查询的时候都会用到,那么随着系统记录的数量越来越多,你有没有发现这条语句执行的也越来越慢了呢? 一、count(*)原理 在不同的存储引擎中,count(*)有不同的实现方式 MyISAM 存储引擎中,把一个 阅读全文
posted @ 2024-04-12 14:28 孙半仙人 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 本文讨论的就如题目所示,为什么在 MySQL 中,把表数据删除了一半,表文件大小却不变的?以下讨论前提都是使用InnoDB存储引擎,使用DELETE删除,并非DROP和TRUNCATE 一、案例演示 首先创建一个 user 表,新增大概 1000 条记录 查看该表的占用空间 SELECT table 阅读全文
posted @ 2024-04-11 10:44 孙半仙人 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 数据库锁设计的初衷是处理并发问题,作为多用户共享的资源,当出现并发访问的时候,数据库需要合理的控制资源的访问规则,而锁就是用来实现这些访问规则的重要数据结构 根据加锁的范围,MySQL 里的锁大概可以分为全局锁,表级锁,行锁三类 一、全局锁 全局锁就是对整个数据库实例加锁,MySQL 提供了一个加全 阅读全文
posted @ 2024-04-09 16:53 孙半仙人 阅读(59) 评论(0) 推荐(0) 编辑
摘要: MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。 一、undolog 我们在进行数据更新操作 阅读全文
posted @ 2024-04-02 16:18 孙半仙人 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 简单来说,事务就是要保证一组数据库操作,要不全部成功,要不全部失败,在 MySQL 中,事务支持是在存储引擎层面的,比如 MySQL 的原生 MyISAM 存储引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因。 一、隔离性 事务的隔离性,就是我们常说的 ICAD(Atomic 阅读全文
posted @ 2024-04-02 13:18 孙半仙人 阅读(41) 评论(0) 推荐(0) 编辑
摘要: SQL 的更新执行流程跟查询流程差不多,假设现在有一条更新语句:UPDATE T SET c = 1 WHERE ID = 1 客户端连接到 MySQL 服务,通过连接器创建连接,权限验证 在更新语句时候,会清空该表的所有查询缓存器数据 之后就是通过分析器进行词法分析和语法分析,查看更新语句是否存在 阅读全文
posted @ 2024-03-28 16:15 孙半仙人 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 在 MySQL 执行一条查询语句的时候,比如SELECT * FROM T WHRER ID = 1,这篇文章来简要的描述SQL查询的执行流程 可以把整体结构分成 Server 层和存储引擎层,Server 层包括连接器,查询缓存器,分析器,优化器,执行器。存储引擎层则有常见的 InnoDB,MyI 阅读全文
posted @ 2024-03-27 17:54 孙半仙人 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 一、基础知识 1、Lucene 是什么 Lucene 是一个本地全文搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封装 Lucene 适合那种轻量级的全文搜索,我就是服务器资源不够,如果上 ES 的话会很占用服务器资源,所有就选择了 Lucene 搜索引擎 2、倒排索 阅读全文
posted @ 2024-03-11 21:35 孙半仙人 阅读(847) 评论(2) 推荐(3) 编辑
摘要: 因为在博客里上线了评论的功能,但是为了防止有些人发一些敏感词汇,所以做这个敏感词过滤是非常有必要的(这也是为啥我不愿意在评论中加图片一样,假如有人发一些奇怪的图片咋整 🙂) 博客里敏感词策略是检测到如果文案中有敏感词就不允许发布,也会带出相应的敏感词整改,而不是给评论打*处理,防止评论里全是*** 阅读全文
posted @ 2024-03-09 19:00 孙半仙人 阅读(272) 评论(0) 推荐(2) 编辑