B-Tree 是为磁盘等外存储设备设计的一种平衡查找树。因此在讲 B-Tree 之前先了解下磁盘的相关知识。系统从磁盘读取数据到内存时是以磁盘块(bloc...
这个问题是索引方法 Index Method ,上面的索引类型 Index Type 。在 MySQL 中,我们可以看到两种索引方式:B-Tree 索引。...
EXPLAIN 显示了 MYSQL 如何使用索引来处理 SELECT 语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在 SELE...
注意,是“创建”噢。1、最适合索引的列是出现在 WHERE 子句中的列,或连接子句中的列,而不是出现在 SELECT 关键字后的列。2、索引列的基数越大,...
MySQL5.6 下 Innodb 引擎的主要改进:online DDLmemcached NoSQL 接口transportable tablespac...
对于 SELECT COUNT(*) FROM table 语句,在没有 WHERE 条件的情况下,InnoDB 比 MyISAM 可能会慢很多,尤其在大...
InnoDBMyISAM事务支持不支持存储限制64TB无锁粒度行锁表锁崩溃后的恢复支持不支持外键支持不支持全文检索5.7 版本后支持支持更完整的对比,可...
MySQL 提供了多种的存储引擎:InnoDBMyISAMMRG_MYISAMMEMORYCSVARCHIVEBLACKHOLEPERFORMANCE_S...
拆带来的问题:连接消耗 + 存储拆分空间。如果能容忍拆分带来的空间问题,拆的话最好和经常要查询的表的主键在物理结构上放置在一起(分区) 顺序 IO ,减少...
一般情况下,我们创建的表的类型是 InnoDB ,如果新增一条记录(不重启 MySQL 的情况下),这条记录的 ID 是18 ;但是如果重启 MySQL ...
方式一,使用 int 或者 bigint 类型。如果需要存储到分的维度,需要 *100 进行放大。方式二,使用 decimal 类型,避免精度丢失。如果使...
1、varchar 与 char 的区别,char 是一种固定长度的类型,varchar 则是一种可变长度的类型。2、varchar(50) 中 50 的...
MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。具体可以看看 《MySQL 数据类型》 文档。正确的使用数据类型,对数据...
概念只要有两个以上的goroutine并发访问同一变量,且至少其中的一个是写操作的时候就会发生数据竞争;全是读的情况下是不存在数据竞争的。排查方式pack...
方法并发原语备注不要修改变量sync.Once不要去写变量,变量只初始化一次只允许一个goroutine访问变量Channel不要通过共享变量来通信,通过...
概念Go标准库提供了WaitGroup原语, 可以用它来等待一批 Goroutine 结束底层数据结构// A WaitGroup must not b...
Go是一门以并发编程见长的语言,它提供了一系列的同步原语方便开发者使用原子操作Mutex、RWMutex 等并发原语的底层实现是通过 atomic 包中的...
有 2 种方式可以查看一个程序的调度GMP信息,分别是go tool trace和GODEBUGtrace.gopackage main import ...
概念也称为P分离机制,当本线程 M 因为 G 进行的系统调用阻塞时,线程释放绑定的 P,把 P 转移给其他空闲的 M 执行,也提高了线程利用率(避免站着茅...
概念当线程M⽆可运⾏的G时,尝试从其他M绑定的P偷取G,减少空转,提高了线程利用率(避免闲着不干活)。当从本线程绑定 P 本地 队列、全局G队列、netp...
什么才是一个好的调度器?能在适当的时机将合适的协程分配到合适的位置,保证公平和效率。Go采用了GMP模型(对两级线程模型的改进实现),使它能够更加灵活地进...
为什么要控制goroutine并发的数量?在开发过程中,如果不对goroutine加以控制而进行滥用的话,可能会导致服务整体崩溃。比如耗尽系统资源导致程序...
程序中引入pprof pakage在程序中引入pprof package:import _ "net/http/pprof"程序中开启...
泄露原因Goroutine 内进行channel/mutex 等读写操作被一直阻塞。Goroutine 内的业务逻辑进入死循环,资源一直无法释放。Goro...
已加贵站~
name: 技研录
link: https://linmohan.fun/
avatar: https://linmohan.fun/img/favicon.png
descr: 「代码重构世界,逻辑解构真理」