![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
爱喝冰阔乐
这个作者很懒,什么都没留下…
展开
-
索引失效情况
要想分析MySQL查询语句中的相关信息,如是全表查询还是部分查询,就要用到explain.索引的优点大大减少了服务器需要扫描的数据量 可以帮助服务器避免排序或减少使用临时表排序 索引可以随机I/O变为顺序I/O索引的缺点需要占用磁盘空间,因此冗余低效的索引将占用大量的磁盘空间 降低DML性能,对于数据的任意增删改都需要调整对应的索引,甚至出现索引分裂 索引会产生相应的碎片,产生维护开销一、explain用法:explain +查询语句。id:查询语句的序列号,上面图片中只转载 2020-08-15 20:47:43 · 182 阅读 · 0 评论 -
B树
B树又叫平衡多路查找树。一棵m阶的B树(注:切勿简单的认为一棵m阶的B树是m叉树,虽然存在四叉树,八叉树,KD树,及vp/R树/R*树/R+树/X树/M树/线段树/希尔伯特R树/优先R树等空间划分树,但与B树完全不等同)的特性如下树中每个结点最多含有m个孩子(m>=2);除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)]个孩子(其中ceil(x)是一个取上限的函...原创 2020-02-25 15:44:07 · 260 阅读 · 0 评论 -
数据库连接池二
一、应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。如下图所示:二、使用数据库连接池优化程序性能2.1、数据库连接池的基本概念 数据库连接是一种关键的有限的昂贵的资源,这一点在多...原创 2020-05-02 11:11:37 · 184 阅读 · 0 评论 -
数据库连接池一
对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全...原创 2020-05-02 11:11:22 · 104 阅读 · 0 评论 -
数据库四大特性
数据库系统必须维护事务的以下特性(简称ACID):原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性...原创 2020-05-02 11:10:48 · 7107 阅读 · 0 评论 -
Mysql-order by
CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `ci...原创 2020-05-02 10:25:05 · 139 阅读 · 0 评论 -
Mysql-05锁
根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级锁一、全局锁:对整个数据库实例加锁。MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL)这个命令可以使整个库处于只读状态。使用该命令之后,数据更新语句、数据定义语句和更新类事务的提交语句等操作都会被阻塞。使用场景:全库逻辑备份。风险:1.如果在主库备份,在备份期间不能更新,业...原创 2020-05-02 10:26:50 · 83 阅读 · 0 评论 -
Mysql-04索引
索引的常见模型索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,所以这里也就引入了索引模型的概念。可以用于提高读写效率的数据结构很多,这里我先给你介绍三种常见、也比较简单的数据结构,它们分别是哈希表、有序数组和搜索树。下面我主要从使用的角度,为你简单分析一下这三种模型的区别。哈希表是一种以键-值(key-value)存储数据的结构,我们只要输入待查找的值即key,就可以找到其...原创 2020-05-02 10:27:05 · 93 阅读 · 0 评论 -
Mysql-03读数据
脏读:(同时操作都没提交的读取)脏读又称无效数据读出。一个事务读取另外一个事务还没有提交的数据叫脏读。例如:事务T1修改了一行数据,但是还没有提交,这时候事务T2读取了被事务T1修改后的数据,之后事务T1因为某种原因Rollback了,那么事务T2读取的数据就是脏的。解决办法:把数据库的事务隔离级别调整到READ_COMMITTED不可重复读:(同时操作,事务一分别读取事务二操作时...原创 2020-05-02 10:27:16 · 104 阅读 · 0 评论 -
Mysql-02
重要的日志模块:redo log如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程IO成本、查找成本都很高。为了解决这个问题,MySQL的设计者就用了类似酒店掌柜粉板的思路来提升更新效率当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log(粉板)里面,并更新内存,这个时候更新就算完成了。同时,InnoDB引擎会在适当的时候,将这...原创 2020-05-02 10:27:30 · 196 阅读 · 0 评论 -
Mysql-01
连接器第一步,你会先连接到这个数据库上,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。连接命令一般是这么写的分析器如果没有命中查询缓存,就要开始真正执行语句了。首先,MySQL需要知道你要做什么,因此需要对SQL语句做解析。分析器先会做“词法分析”。你输入的是由多个字符串和空格组成的一条SQL语句,MySQL需要识别出里面的字符串分别是什...原创 2020-05-02 10:27:42 · 216 阅读 · 0 评论 -
索引
是InnoDB 引擎中是最重要的索引结构,主键索引的数据结构是一颗“B+树”,树的子节点存储索引节点信息及关联关系,树的叶子节点存储主键索引信息+数据,一颗树的叶子节点按照主键索引有序排列开来,查找起来更便捷。非聚集索引譬如:我们常用的普通索引或者复合索引,以User表中的name索引为例说明非聚集索引存储的具体的索引字段信息,而叶子节点存储主键索引+数据,为了要找到“zhangs...原创 2020-02-25 15:43:54 · 80 阅读 · 0 评论