
MySQL从入门到精通
文章平均质量分 92
本专栏深入学习MySQL的内部工作原理,包括存储引擎、索引、查询优化等核心概念。并通过实际案例,展示如何利用这些知识来优化性能和解决常见问题。探索MySQL的高级特性,如事务、存储过程、触发器、视图等,并介绍如何使用它们来满足复杂的业务需求
冰点.
《Redis从入门到精通2023版》作者-
日拱一卒无有尽,功不唐捐终入海。路漫漫其修远兮。吾将上下而求索
展开
-
聊聊MySQL面试常问名词回表、索引覆盖,最左匹配
背景:有一个小老弟面试的时候再数据库索引话题中被问到一些名词索引下推,回表,最左匹配原则涉及到一些原理层面的问题。所以今天抽时间聊聊。MySQL面试过程中,经常在索引面试话题中,最常问的几个名词,我们今天来聊一聊。其实这些名词也是作为一个开发应该要掌握理解的。这是基本常识。今天先来聊聊回表索引覆盖最左匹配对于索引下推SQL优化操作我们下次专门一篇文章聊聊等。回表(Index Lookup)是指在使用非聚簇索引进行查询时,需要通过索引找到对应的行数据,然后再回到原始表中查找其他列的值。原创 2023-10-07 11:48:59 · 743 阅读 · 0 评论 -
聊聊MySQL的聚簇索引和非聚簇索引
聚簇索引是一种特殊类型的索引,在存储引擎中,数据记录实际的存放方式会根据聚簇索引来组织。一个表中只能有一个聚簇索引,但可以有多个非聚簇索引。在许多数据库系统中,聚簇索引通常就是主键索引。例如:在MySQL的InnoDB引擎中,聚簇索引默认是主键,如果没有定义主键,MySQL会选择一个非空唯一索引代替,如果没有非空唯一索引,MySQL会自动创建一个隐藏的聚簇索引。在SQL Server中,也可以选择用哪个列作为聚簇索引,但一般推荐使用主键。在Oracle中,可以明确指定创建聚簇索引。原创 2023-10-07 10:35:41 · 1637 阅读 · 0 评论 -
面试问到MySQL模块划分与架构体系怎么办
Mysql模块划分与架构体系原创 2023-09-28 15:03:03 · 763 阅读 · 0 评论 -
彻底讲透redo日志磁盘顺序写机制
这样做的好处是可以减少磁盘的寻道时间和旋转延迟,并且可以将多个小的写操作合并为一个大的顺序写操作,从而提高磁盘的写入性能。redo日志的磁盘顺序写机制是一种优化策略,通过将redo日志的写入操作转化为磁盘的顺序写入,从而提高系统的性能和效率。Redo日志是数据库系统中的一种重要的日志记录机制,用于记录已经发生的事务操作,以保证数据库的一致性和持久性。在数据库中,redo日志的磁盘顺序写机制是一种优化策略,通过将redo日志的写入操作转化为磁盘的顺序写入,从而提高系统的性能和效率。原创 2023-09-21 23:15:39 · 945 阅读 · 1 评论 -
MySQL BufferPool缓存与Redo日志是如何提升事务性能的
BufferPool是数据库管理系统中的一种内存区域,用于缓存数据库中的数据和索引页。它是数据库的核心组件之一,可以提高数据库的读取性能。BufferPool的大小可以根据系统配置进行调整,通常是数据库的一部分内存空间。在MySQL中,redo日志(Redo Log)是一种事务日志,用于记录数据库中的修改操作。它起到了保障事务的持久性和数据的完整性的重要作用。原创 2023-09-18 19:04:11 · 920 阅读 · 0 评论 -
【进阶篇】MySQL数据库中的 锁详解
锁的概念和作用锁是一种并发控制机制,用于保证多个事务或线程对共享资源的访问顺序和数据的一致性。锁的作用是防止多个事务或线程同时访问和修改共享资源,避免数据的不一致和竞争条件的发生。以下是锁的主要概念和作用:并发控制:锁用于控制并发访问共享资源的顺序,保证事务或线程的串行执行,避免并发访问带来的数据冲突和不一致性。数据一致性:锁用于保证多个事务对共享资源的读写操作是串行的,避免读写不一致的情况发生。互斥性:锁用于实现资源的互斥访问,同一时间只有一个事务或线程可以获取锁,并对资源进行修改。原创 2023-09-14 23:56:37 · 453 阅读 · 2 评论 -
【实践篇】MySQL EXPLAIN执行计划详解
执行计划是MySQL数据库在执行SQL查询时的一个操作步骤集合。它描述了数据库如何执行SQL语句,以及如何从数据表中检索或更新数据。执行计划包括了多种信息,如数据读取的顺序,数据过滤的方式,连接表的方式等。原创 2023-09-14 23:38:13 · 914 阅读 · 0 评论 -
【理论篇】分布式事务看这一篇就够了
A. 分布式事务的定义分布式事务是指在分布式系统中,涉及到两个及以上的节点协同完成的事务。由于这些节点可能在物理上分布于不同的机器,甚至在云上,因此需要在所有相关节点间进行协调和通信,以保证事务的正确执行。在分布式事务中,所有的操作要么全部成功,要么全部失败,这是分布式事务的原子性。B. 分布式事务的应用场景和重要性分布式事务广泛应用于各种需要跨系统或跨数据库操作的场景,如电商、金融、物流等。原创 2023-09-13 23:49:00 · 271 阅读 · 2 评论 -
【进阶篇】MySQL的MVCC实现机制详解
在本篇博客中,我们深入探讨MySQL的MVCC实现机制,包括Undo日志、Read View以及事务链等概念。我们将详解MVCC如何在保证数据一致性的同时,提高数据库的并发处理能力。本篇博客旨在帮助读者理解和掌握MySQL中MVCC的工作原理,以更好地进行数据库设计和优化。原创 2023-09-06 17:09:36 · 1306 阅读 · 0 评论 -
MySQL从入门到精通【实践篇】之使用Sharding-JDBC 分库分表详解
Sharding-JDBC 是一款开源的分布式数据库中间件,主要目标是充分利用数据库的水平扩展能力,尽可能地避免改变已有的应用程序代码,简化分布式系统的开发难度。本文主要是使用sharding-jdbc 实现分库分表 以及各种分库分表策略实战验证。在学习本文之前建议 先看下我之前写的两篇文章《MySQL从入门到精通【进阶篇】MySQL分库分表详解》《MySQL从入门到精通【进阶篇】MySQL的读写分离详解》分库分表是一种常见的数据库扩展策略,它通过将数据分散到多个数据库或表中,来提高系统的性能和可扩展性。原创 2023-09-06 07:30:00 · 819 阅读 · 3 评论 -
【进阶篇】MySQL的读写分离详解
例如,你的团队开发和维护着一个电商平台,随着业务的发展和网购习惯的不断成熟,目前平台每天有数以百万计的用户进行商品浏览和购买。但是经过你们团队的具体分析,发现1000商品的查询下单商品为1也就是大量请求都是在处理商品的查询,以及快递信息的查询。尤其在高峰期,服务器可能需要处理大量的读和写请求。如果所有的读请求都由一个数据库服务器处理,那么可能会造成服务器响应缓慢,甚至服务器无法响应下单请求,甚至服务器直接崩溃。这时,作为资深的你应该已经在考虑使用读写分离策略。原创 2023-09-03 23:55:27 · 2358 阅读 · 11 评论 -
【进阶篇】MySQL分库分表详解
假设有一个电商网站,随着用户量和订单量的增加,单一数据库难以承载如此庞大的数据量,查询速度也逐渐降低,这时就需要进行分库分表。原创 2023-09-02 23:47:18 · 2185 阅读 · 7 评论 -
【进阶篇】MySQL的SQL解析原理详解
你是否已经深入了解了MySQL中 SQL解析过程,以及解析过程中每个环节扮演的具体角色?你是否好奇MySQL是如何将一条SQL语句解析成一系列的"Item"和"TABLE_LIST" 最终通过 这些完成指令的执行和结果的反馈你是否清楚在查询优化和执行阶段MySQL进行了哪些处理的?那么,让我们一起深入了解一下MySQL的SQL解析原理吧。本文参考了美团技术团队的《SQL解析在美团的应用》原创 2023-09-01 07:15:00 · 2849 阅读 · 22 评论 -
MySQL从入门到精通【进阶篇】之 主从复制详解
MySQL主从复制技术详解,MySQL的主从复制和读写分离是数据库领域的基本概念,也是保证系统高可用、高性能的重要技术。主从复制(Master-Slave Replication)是MySQL的一项重要功能。这种技术允许 将一个MySQL数据库服务器(主服务器)上的数据,复制到一个或多个MySQL数据库服务器(从服务器)上。主从复制使用场景主要包括读写分离、故障切换、备份以及数据分析等。原创 2023-08-31 18:45:00 · 526 阅读 · 1 评论 -
MySQL从入门到精通【进阶篇】20个SQL优化定律+10条DBA经验
对于SQL查询的优化,无疑是每个开发者和数据库管理员(DBA)必备的一种技能。SQL查询优化是一个复杂的过程,它包括对SQL语句的合理编写,数据库结构的合理设计,索引的科学使用,配置的合理调整,数据和硬件环境的适当匹配等方面。原创 2023-08-30 14:59:24 · 368 阅读 · 0 评论 -
【进阶篇】MySQL 存储引擎详解
MySQL是世界上最受欢迎的开源关系数据库管理系统之一。MySQL的一个主要特性是其插件式存储引擎架构,这意味着你可以根据特定的工作负载和需求选择不同的存储引擎。它支持多种存储引擎。下面将详细解释MySQL的存储引擎,包括InnoDBMyISAMMemory等。每种存储引擎都有其应用的场景和特点,选择哪种引擎取决于数据的特性和应用的需求。在设计数据库时,应该根据需要选择合适的存储引擎。InnoDB:InnoDB是MySQL的默认存储引擎。原创 2023-08-29 11:56:32 · 1035 阅读 · 8 评论 -
mysql8.0 docker部署后连接报错caching_sha2_password could not be loaded
切记:一般情况下不建议使用容器方式部署数据库,此方式只是为了验证一些mysql8.0的特性,做学习和测试使用。解决方法1.进入docker容器内 使用 mysql -uroot -p 进入mysql2.ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;3.ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'passwo...原创 2021-03-29 17:10:04 · 364 阅读 · 0 评论 -
MySQL 从入门到精通之索引详解
MySQL中的索引是提高查询性能的重要工具。索引是一种数据结构,本文详解B+树 和hash索引原理,索引它允许MySQL快速定位和访问表中的数据。索引是存储在磁盘上的数据结构,它包含了一个或多个表的列值和对应的物理位置。通过使用索引,MySQL可以快速定位满足特定条件的行,而无需扫描整个表。原创 2018-07-23 08:59:43 · 4353 阅读 · 0 评论 -
数据库表损坏解决方法( is marked as crashed and should be repaired)
表损坏原因过程大致如下,过了个国庆没有查看服务器状态,7号晚上手机收到ECS服务器异常短信,查了下发现是磁盘满了,导致无法创建临时空间,造成商城无法访问,速速的解决方法是删除了大量日志文件,访问网站发现已经ok了,一切正常,今天客户忽然打电话说,网站的搜索功能出现问题,我查了下错误原因 报错信息 Table '.\Tablename\**** ' is marked as crashed原创 2016-10-10 10:15:33 · 5763 阅读 · 0 评论 -
Cannot load from mysql.proc. The table is probably corrupted 问题解决
MySQL will sometimes return the error message “Cannot load from mysql.proc. The table is probably corrupted”. This happens due to schema changes required for different MySQL server versions. The simpl转载 2016-08-23 13:29:14 · 1962 阅读 · 0 评论