随笔分类 - Mysql
摘要:SQL 标准定义了四种隔离级别,MySQL 全都支持。这四种隔离级别分别是: 读未提交(READ UNCOMMITTED) 读提交 (READ COMMITTED) 可重复读 (REPEATABLE READ) 串行化 (SERIALIZABLE) MySQL InnoDB 引擎才支持事务,MyIS
阅读全文
摘要:主从复制的作用 1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。 3、读写分离,使数据库能支撑更大的并发。在报表中
阅读全文
摘要:什么是间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(NEXT-KEY)锁。危害因为Query执行过程中
阅读全文
摘要:Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大
阅读全文
摘要:SQL好久不写了,有些生疏了,一个分组排序问题想了快半天,整理下。 学生表 班级表 问题:查询出每个班级前三名的信息? 首先,如何查询每个班级前三名的SQL呢? 完整SQL如下
阅读全文
摘要:数据类型的优化 MySQL数据类型 优化策略 索引优化 索引类型 高性能索引策略 查询优化 优化数据访问 从好到坏的where条件应用 重构查询 一、数据类型的优化 (1)MySQL数据类型 整数类型: TinyInt,存储空间8, 字节长度1; SmallInt, 存储空间16, 字节长度2; M
阅读全文
摘要:MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(
阅读全文
摘要:本文实例讲述了MySQL常用存储引擎功能与用法。 MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB、BDB。 2. 非事务安全表:MyISAM、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等。 MyS
阅读全文
摘要:在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍。想想可知,假如我们查询淘宝的一个订单详情,如果查询时间高达几十秒,这么高的查询延时,任何用户都会抓狂。因此如何提高 SQL 语句查询效率,显得十
阅读全文
摘要:一、并发控制 为啥要进行并发控制? 并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control)。 技术上,通常如何进行并发控制? 通过并发控制保证数据一致性的常见手段有: 锁(Locking) 数据多版本(Multi Versio
阅读全文
摘要:MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。 但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。 InnoDB的细粒度锁,是实现在索引记录上的。 一,InnoDB的索引 InnoDB的索引有两类索引,聚集索引(Clustered Index)与普通索
阅读全文
摘要:B-树由来 定义:B-树是一类树,包括B-树、B+树、B*树等,是一棵自平衡的搜索树,它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。B-树是专门为外部存储器设计的,如磁盘,它对于读取和写入大块数据有良好的性能,所以一般被用在文件系统及数据库中。 先来看看为什么会出现B-树这类
阅读全文