
数据库
文章平均质量分 77
Chicken Run
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis主从架构、哨兵模式及集群比较
Redis提供三种分布式解决方案:主从架构实现基础数据备份和读负载均衡,适合小规模读多写少场景;哨兵模式在主从基础上增加自动故障切换功能,保障高可用性;Redis集群通过数据分片和原生高可用机制,支持大规模数据存储和扩展。三者核心差异在于数据分布方式、故障恢复机制和扩展能力,分别针对不同规模业务需求。主从架构部署简单但需手动恢复,哨兵模式自动容灾但存储受限,集群方案支持水平扩展但部署复杂。根据数据规模、读写负载和可用性要求选择合适的架构方案。原创 2025-08-18 14:27:23 · 582 阅读 · 0 评论 -
Redis 哨兵模式与主从架构对比
Redis哨兵模式与主从架构的核心差异在于高可用机制:主从架构仅包含主库和从库,需人工干预主库故障恢复;哨兵模式新增哨兵节点,可自动检测故障并完成主从切换,实现秒级恢复。两者均采用主从复制机制,存在数据延迟问题,且无法扩展写性能。哨兵模式适合对可用性要求高的场景,但复杂度高于主从架构,且仍受限于单机内存。若需突破单机限制,应使用Redis集群方案。原创 2025-08-18 14:22:28 · 802 阅读 · 0 评论 -
Redis核心应用场景及代码案例
本文介绍了Redis在16个典型应用场景中的实现方式,通过代码示例展示了具体用法。主要内容包括:高频数据缓存、分布式会话存储、计数器、限流器、分布式锁等基础功能实现;消息队列、排行榜、热点数据存储等常见业务场景应用;以及布隆过滤器、BitMap、HyperLogLog等高级数据结构的实际应用。每个示例都提供了完整的Go语言实现代码,涵盖了Redis的字符串、哈希、列表、集合、有序集合等主要数据结构。这些案例展示了Redis在分布式系统中的核心作用,包括数据缓存、状态共享、并发控制等方面,为开发者提供了可直接原创 2025-08-15 21:41:23 · 784 阅读 · 0 评论 -
Redis核心架构
Redis核心架构与数据存储原理分析 Redis采用模块化设计,核心包括网络层、命令解析、内存管理、持久化和高可用等模块。网络层基于高性能事件驱动库ae,支持多种I/O多路复用技术。数据存储以redisDb为核心,通过字典结构dict实现键值对存储,支持16个数据库。每个键值对以dictEntry形式存储,值通过redisObject封装,支持多种数据类型和编码方式。系统采用渐进式rehash机制,并包含完善的LRU/LFU内存管理策略。整体架构实现了高性能、低延迟的数据访问,同时通过多种持久化方案保证数据原创 2025-08-15 21:27:10 · 1985 阅读 · 1 评论 -
MySQL基础笔试
本文整理了MySQL数据库的基本操作命令,包括服务管理、用户权限、数据库操作、表操作、数据增删改查、索引管理等内容。主要涵盖:1)MySQL服务启停与端口检查;2)用户密码设置与修改;3)数据库创建与字符集设置;4)表的创建、修改与数据操作;5)索引的创建、查看与删除;6)数据备份与恢复;7)权限管理与用户删除;8)密码丢失找回方法等。这些命令涵盖了MySQL数据库日常管理中的常见操作,可作为数据库管理员的实用参考手册。原创 2025-08-12 13:06:16 · 887 阅读 · 0 评论 -
MySQL 存储引擎
存储引擎就是存储数据、建立索引、更新 / 查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可称为表类型。(MySQL5.5 之后默认的存储引擎 ——InnoDB查询当前数据库的存储引擎在创建表时指定存储引擎#语法-- 建表语句末尾使用ENGINE关键字,指定存储引擎。CREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释],字段2 字段2类型 [COMMENT 字段2注释],字段3 字段3类型 [COMMENT 字段3注释],...原创 2024-10-22 10:29:43 · 2844 阅读 · 0 评论 -
MySQL事务隔离级别
一个事务与其他事务隔离的程度称为隔离级别. 数据库规定了多种事务隔 离级别, 不同隔离级别对应不同的干扰程度, 隔离级别越高, 数据一致性就 越好, 但并发性越弱.数据库事务的隔离性: 数据库系统必须具有隔离并发运行各个事务的能力, 使它们不会相互影响, 避免各种并发问题.Mysql 支持 4 种事务隔离级别. Mysql 默认的事务隔离级别为: REPEATABLE READ。原创 2024-10-21 22:32:01 · 335 阅读 · 0 评论 -
MySQL通配符使用
如,”[abc]” 则匹配”a”、”b”或者”c”,“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。“_” 匹配单个字符,”\_” 匹配”_”“.” 匹配任何单个的字符。— 查寻以 三 结尾的名字。原创 2024-10-20 22:11:50 · 419 阅读 · 0 评论 -
MySQL 命令大全
MySQL 命令原创 2024-10-19 22:49:50 · 389 阅读 · 0 评论 -
MySQL !=NULL 与IS NOT NULL
在MySQL中!= 和 的功能一致,在sql92规范中建议是:!=,新的规范中建议为:原创 2024-10-18 22:36:23 · 516 阅读 · 0 评论 -
MySQL 基础查询
本文介绍了MySQL中常用的查询操作和函数:1)DISTINCT用于去重查询,需注意字段顺序;2)+号作为运算符的使用规则;3)CONCAT函数实现字符串拼接;4)安全等于<=>运算符可判断NULL值;5)ORDER BY子句实现排序查询,支持表达式和别名;6)常见单行函数包括LENGTH、UPPER/LOWER、CONCAT、SUBSTR等字符串处理函数,以及数字函数和日期函数。这些基础操作和函数是MySQL数据处理的重要组成部分。原创 2024-10-17 21:44:31 · 626 阅读 · 0 评论 -
MySQL与Oracle对比及区别
性能卓越,服务稳定,很少出现异常宕机;开放源代码无版本制约,自主性及使用成本低;历史悠久,社区和用户非常活跃,遇到问题及时寻求帮助;软件体积小,安装使用简单且易于维护,维护成本低;品牌口碑效应;支持多种OS,提供多种API接口,支持多种开发语言,对流行的PHP,Java很好的支持。原创 2024-11-12 11:43:55 · 5372 阅读 · 1 评论 -
最佳左前缀法则(Optimal Left-Prefix Rule)
摘要:复合索引遵循"最佳左前缀法则",即查询条件需从索引最左侧列开始才能有效利用索引。例如索引(a,b,c)中,仅查询c或b、c不会走索引;查询a或a、b能部分使用索引;只有a、b、c全查时索引才完全生效。特殊情况是,即使条件顺序(c,b,a)与索引顺序不同,MySQL优化器会自动调整为(a,b,c)顺序,依然能充分利用索引。该原理基于B+树索引的排序特性,只有按定义顺序匹配才能高效检索数据。原创 2025-08-07 23:50:24 · 210 阅读 · 0 评论 -
mysql 索引失效分析
MySQL索引失效的核心原因包括:在索引列上使用函数/表达式、隐式类型转换、使用NOT IN/!=操作符、%开头的模糊查询、违反联合索引最左前缀原则、OR条件含非索引列、索引列参与计算等。失效本质是破坏了B+树索引的有序性和可比较性,导致优化器选择全表扫描。优化建议包括:避免对索引列运算、确保类型匹配、合理设计联合索引、使用EXPLAIN分析执行计划等。通过理解这些原理并合理设计索引,可有效提升查询性能。原创 2025-08-07 23:59:55 · 769 阅读 · 0 评论 -
Mysql与Oracle 索引失效场景对比
MySQL与Oracle索引失效场景对比 摘要:MySQL和Oracle在索引失效方面存在共性和差异。两者在函数/表达式、OR条件、否定操作符、隐式类型转换、模糊查询和联合索引等场景都可能失效,但表现不同:MySQL 8.0前不支持函数索引,对OR条件处理更严格;而Oracle原生支持函数索引,优化器更灵活。联合索引场景中,MySQL范围查询后列失效,Oracle可能支持跳跃扫描。开发中需结合数据库类型和版本,通过执行计划分析避免索引失效。原创 2025-08-08 12:51:36 · 1435 阅读 · 0 评论 -
group by详解
本文详细解析了SQL中group by的分组原理及优化方法。首先通过员工表统计城市员工数的例子,说明group by的基本使用方式。接着深入分析其执行流程,包括创建临时表、分组统计和排序等步骤。文章重点比较了where和having的区别,指出where用于行筛选而having用于分组后筛选。针对group by可能导致的性能问题,提出了四种优化方案:为分组字段加索引、使用order by null取消排序、调整内存临时表大小参数、使用SQL_BIG_RESULT提示处理大数据量。最后强调在实际应用中,需要原创 2025-08-10 09:29:39 · 612 阅读 · 0 评论 -
MySQL分页查询的工作原理
MySQL分页查询优化与实现原理 本文深入探讨了MySQL中分页查询的实现原理及优化策略。主要内容包括:1) MySQL执行流程和索引结构分析;2) ORDER BY工作原理,包括索引扫描排序和文件排序(全字段排序与rowid排序);3) LIMIT工作机制及性能问题;4) 常见问题分析:排序字段非唯一导致的乱序问题和深度分页问题。文章通过具体SQL示例说明如何利用索引优化排序,并提供了解决深度分页问题的子查询方案。最后指出生产环境应避免使用SELECT *,合理设计分页策略以提升查询性能。原创 2025-08-10 09:34:10 · 640 阅读 · 0 评论 -
MySQL 正则表达式
MySQL支持正则表达式匹配,通过REGEXP和RLIKE操作符实现,功能与PHP/Perl类似。主要正则模式包括:^匹配字符串开头,$匹配结尾,.匹配任意字符,[]匹配字符集,*和+分别表示零次/多次和一次/多次匹配等。基本语法为SELECT...WHERE column REGEXP 'pattern',可进行开头/结尾匹配、包含检测、大小写区分(BINARY)等操作。RLIKE与REGEXP功能相同,可互换使用。示例包括匹配特定开头/结尾字符串、数字组合等,适用于复杂查询场景。原创 2025-08-10 09:37:47 · 906 阅读 · 0 评论 -
SQL 注入分析
SQL注入是通过恶意输入篡改SQL查询的安全威胁,常见于未经验证的用户输入。攻击者可构造特殊输入绕过验证,如输入'OR'1'='1'使查询恒真。防范措施包括:使用参数化查询分离输入与语句、对输入进行验证和转义、遵循最小权限原则、采用ORM框架抽象查询,以及禁用详细错误信息。开发者必须始终将用户输入视为不安全并严格处理,以保护数据库安全。原创 2025-08-10 09:39:52 · 294 阅读 · 0 评论 -
MySQL 索引
MySQL索引是提高数据库查询性能的关键数据结构,通过存储数据指针快速定位记录。索引分为单列和组合索引,支持升序/降序排序。创建方式包括CREATE INDEX、ALTER TABLE和建表时直接指定。虽然索引能大幅提升查询速度,但会占用额外存储空间并影响写入性能,需合理规划。唯一索引确保列值不重复,主键索引则强制非空且唯一。可通过SHOW INDEX查看索引信息,使用DROP INDEX或ALTER TABLE删除索引。索引的合理使用能显著优化数据库性能,但过多或不恰当的索引反而会降低效率。原创 2025-08-10 09:45:45 · 243 阅读 · 0 评论