数据库
文章平均质量分 86
Arthas217
向上️
展开
-
分库分表零基础
一、前言中大型项目中,一旦遇到数据量比较大,就应该对数据进行拆分。有垂直和水平两种 。垂直拆分也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。水平拆分,是同一个业务数据量大之后,进行水平拆分。mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。把4000万数据拆分4张表或者更多,当然也可以分库,再分表;把压力从数据库层级分开(这里不讨论)二、分库分表方案常用方案:hash取模和range范围方案。分表方案最主要就是路由算法,把路由的key转载 2021-11-26 18:17:13 · 339 阅读 · 0 评论 -
mysql中select和update语句执行过程
前言本文基于MySQL5.7版本。前面几篇MySQL系列的文章介绍了索引,事务和锁相关知识,那么今天就让我们来看看当我们执行一条select语句和一条update语句的时候,MySQL要经过哪些步骤,才能返回我们想要的数据。一条select语句的执行流程MySQL从大方向来说,可以分为 Server 层和存储引擎层。而Server层包括连接器、查询缓存、解析器、预处理器、优化器、执行器等,最后Server层再通过API接口形式调用对应的存储引擎层提供的接口。如下图所示(图片来源于《高性能My转载 2020-10-09 20:44:40 · 2243 阅读 · 2 评论 -
收货mysql索引
一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他...转载 2020-03-26 13:04:11 · 131 阅读 · 1 评论