![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 86
30年后世界会是怎样
这个作者很懒,什么都没留下…
展开
-
MySQL锁总结
锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性。锁冲突也是影响数据库并发访问性能的一个重要因素。锁是Mysql在服务器层和存储引擎层的的并发控制。加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等。锁机制共享锁与排他锁共享锁(读锁):其他事务可以读,但不能写。 排他锁(写锁) :其他事务不能读取,也不能写。粒度锁MySQL 不同的存储引擎支持不同的锁机制,所有的存储引擎都以自己的方式显现了锁机制,服务器层完全转载 2021-04-20 23:05:16 · 135 阅读 · 0 评论 -
mysql的undo log和mvcc
众所周知,mysql中读取方式按照是否需要传统意义的锁,分为锁定读和非锁定读两种。一、锁定读行锁,间隙锁,next-key锁,无非就是为了保证:一个事务中锁定读取一条或者多条数据时,不能读到别的事务没有提交的更改(不能脏读) 不能同一个事务两次读到的数据内容不一致(应该要可重复读) 不能同一个事务,两次读到的数据条数都不一致(不能幻读)二、事务隔离级别从锁粒度从小到大,RU(读未提交),RC(读已提交),RR(可重复读),S(序列化)RU(读未提交):很显然,这个级别是最无节操的级转载 2021-04-20 22:59:18 · 583 阅读 · 2 评论 -
mysql集群方案
集群的好处高可用性:故障检测及迁移,多节点备份。 可伸缩性:新增数据库节点便利,方便扩容。 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力。集群要考虑的风险网络分裂:群集还可能由于网络故障而拆分为多个部分,每部分内的节点相互连接,但各部分之间的节点失去连接。 脑裂:导致数据库节点彼此独立运行的集群故障称为“脑裂”。这种情况可能导致数据不一致,并且无法修复,例如当两个数据库节点独立更新同一表上的同一行时。一,mysql原厂出品1,MySQL Replicationmysql转载 2021-04-17 20:13:57 · 2518 阅读 · 0 评论 -
MySQL分库分表方案
一、分库分表背景1.为什么分库A. 数据库是最容易产生性能瓶颈的服务组件。 数据库连接数资源捉襟见肘和数据库因为表多、数据多造成的性能问题。 这里以淘宝为例,在淘宝平台向共享服务体系改造的过程中,通过各个服务中心拥有各自独立数据库的方式,即采用数据库垂直分区的方式对业务数据进行分区。B. 单一服务中心的数据访问压力也必然会达到单机数据库的承载上限,所以在进行服务化改造的同一时间段内,需要对数据库能力做扩展的工作。C. ...转载 2021-04-17 13:46:17 · 580 阅读 · 0 评论 -
SQL优化
SQL优化在提升系统性能中是:(成本最低 && 优化效果最明显) 的途径。优化成本:硬件>系统配置>数据库表结构>SQL及索引。 优化效果:硬件<系统配置<数据库表结构<SQL及索引。好了我们言归正传,首先,对于MySQL层优化我一般遵从五个原则:减少数据访问: 设置合理的字段类型,启用压缩,通过索引访问等减少磁盘IO 返回更少的数据: 只返回需要的字段和数据分页处理 减少磁盘io及网络io 减少交互次数: 批量DML操作,函数存.转载 2021-04-17 12:37:52 · 107 阅读 · 0 评论 -
mysql索引失效原理
单值索引B+树图单值索引在B+树的结构里,一个节点只存一个键值对联合索引开局一张图,由数据库的a字段和b字段组成一个联合索引。从本质上来说,联合索引也是一个B+树,和单值索引不同的是,联合索引的键值对不是1,而是大于1个。a, b 排序分析a顺序:1,1,2,2,3,3b顺序:1,2,1,4,1,2大家可以发现a字段是有序排列,b字段是无序排列(因为B+树只能选一个字段来构建有序的树)一不小心又会发现,在a相等的情况下,b字段是有序的。大家想想平时编程中我们要对两个字段排.转载 2021-04-17 12:10:17 · 99 阅读 · 0 评论 -
mysql索引失效的情况
索引对于MySQL而言,是非常重要的篇章。索引知识点也巨多,要想掌握透彻,需要逐个知识点一一击破,今天来先来聊聊哪些情况下会导致索引失效。图片总结版全值匹配(索引最佳)explainselect*fromuserwherename='zhangsan'andage =20andpos ='cxy'andphone ='18730658760';和索引顺序无关,MySQL底层的优化器会进行优化,调整索引的顺序explain select * fro...转载 2021-04-16 17:58:04 · 139 阅读 · 0 评论 -
Mysql隔离性之Read View的用法说明
当前事务能读取到哪个历史版本?Read View是事务开启时,当前所有事务的一个集合,这个数据结构中存储了当前Read View中最大的ID及最小的ID。这就是当前活跃事务列表,如下所示: ct-trx --> trx11 --> trx9 --> trx6 --> trx5 --> trx3; ct-trx 表示当前事务的id,对应上面的read_view数据结构如下, read_view->creator_trx_id = ct转载 2021-04-16 17:50:01 · 1672 阅读 · 0 评论 -
Mysql中MVCC的使用及原理详解
数据库默认隔离级别:RR(Repeatable Read,可重复读),MVCC主要适用于Mysql的RC,RR隔离级别创建一张存储引擎为testmvcc的表,sql为:CREATE TABLE testmvcc ( id int(11) DEFAULT NULL, name varchar(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;什么是MVCC?英文全称为Multi-Version Concurrency Control,转载 2021-04-16 17:44:43 · 299 阅读 · 0 评论 -
MySQL的binlog日志
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-.转载 2021-04-16 17:38:03 · 97 阅读 · 0 评论 -
深入学习MySQL事务:ACID特性的实现原理
事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段。本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理。MySQL博大精深,文章疏漏之处在所难免,欢迎批评指正。一、基础概念事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务,本文介绍基于MySQL5.6。首先回顾一下MySQL事务的基础知识。1.转载 2021-04-16 17:35:31 · 114 阅读 · 0 评论 -
mysql事务概述
mysql事务在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 一般来说,事务需要满足4个条件(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) mysql默认自动提交事务 原子性 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。转载 2021-04-16 17:26:55 · 89 阅读 · 0 评论 -
mysql索引类型
索引的类型和存储引擎有关,每种存储引擎所支持的索引类型不一定完全相同。MySQL 索引可以从存储方式、逻辑角度和实际使用的角度来进行分类。存储方式区分根据存储方式的不同,MySQL 中常用的索引在物理上分为 B-树索引和 HASH 索引两类,两种不同类型的索引各有其不同的适用范围。1) B-树索引B-树索引又称为BTREE 索引,目前大部分的索引都是采用 B-树索引来存储的。B-树索引是一个典型的数据结构,其包含的组件主要有以下几个:叶子节点:包含的条目直接指向表里的数据行。叶子节..转载 2021-04-16 17:23:03 · 151 阅读 · 0 评论 -
Mysql 索引下推
导读 索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。 在不使用ICP的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条件 。 在使用ICP的情况下,如果存在某些被索引的列的判断条件时,MySQL服务器将这一部分判断条件传递给存储引擎,然后由存储引擎通过判断索引是否符合MySQL服务器传递的条件,只有当索引...转载 2021-04-16 17:20:04 · 179 阅读 · 0 评论 -
mysql索引覆盖
什么叫做覆盖索引? 在了解覆盖索引之前我们先大概了解一下什么是聚集索引(主键索引)和辅助索引(二级索引) 聚集索引(主键索引): 聚集索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据。 聚集索引的叶子节点称为数据页,聚集索引的这个特性决定了索引组织表中的数据也是索引的一部分。 辅助索引(二级索引): 非主键索引,叶子节点=键值+书签。Innodb存储引擎的书签...转载 2021-04-16 17:16:05 · 263 阅读 · 0 评论 -
Linux下安装mysql
一 安装前准备1、检查是否已经安装过mysql,执行命令[root@localhost /]# rpm -qa | grep mysql从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64再次执行查询命令,查看是否删除[root@localhost /]# r...转载 2020-06-09 07:54:36 · 160 阅读 · 0 评论 -
刚刚安装完mysql就提示密码过期!
mysql 5.7.14安装完后登陆报错,意思是密码过期[root@mysql]# mysql -u root -pEnter password:ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.解决办法:1.在my.cnfmysqld 部分加入 skip-grant-tables ..转载 2020-06-09 07:37:10 · 774 阅读 · 0 评论 -
mysql存储过程
存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟,它允许控制数据的访问方式。存储过程的优点:(1)转载 2020-05-28 18:24:04 · 205 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyIS转载 2020-05-20 19:03:09 · 312 阅读 · 0 评论 -
Mysql使用全文索引(FullText index)
什么是全文索引全文索引,通过建立倒排索引,可以极大的提升检索效率,解决判断字段是否包含的问题. 例如: 有title字段,需要查询所有包含 "政府"的记录. 需要 like "%政府%"方式查询,查询速度慢,当查询包含"政府" OR "中国"的需要是,sql难以简单满足.全文索引就可以实现这个功能.倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是...转载 2020-04-13 10:18:18 · 1050 阅读 · 0 评论 -
Mysql命令行导入sql数据
我的个人实践是:phpmyadmin 导出 utf-8 的 insert 模式的 abc.sqlftp abc.sql 到服务器ssh 到服务器mysql -u abc -p use KKKKKK是数据库名,如果没有就 create database KKK。set names 'utf8' source abc.sql注意:我看到 set character ...转载 2020-04-07 15:06:41 · 226 阅读 · 0 评论 -
mysql索引数据结构
什么是索引?索引就是排好序的数据结构,可以帮助我们快速的查找到数据推荐一个网站,可以演示各种数据结构:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html---------------------------------------------------------------图解几种数据结构:二叉树:如果...转载 2020-03-06 14:46:06 · 248 阅读 · 0 评论 -
搞懂MySQL分区
一.InnoDB逻辑存储结构 首先要先介绍一下InnoDB逻辑存储结构和区的概念,它的所有数据都被逻辑地存放在表空间,表空间又由段,区,页组成。段 段就是上图的segment区域,常见的段有数据段、索引段、回滚段等,在InnoDB存储引擎中,对段的管理都是由引擎自身所完成的。区 区就是上图的extent区域,区是由连续的页组成的空间,无论页的大小怎么变,区的大...转载 2020-03-06 14:38:34 · 131 阅读 · 0 评论 -
MySQL之explain命令解释
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了。如:explain select * form account 类似下面输出EXPLAIN列的解释:table:显示这一行的数据是关于哪张表的type:这是重要的列,显示连接使用了何种类型。...转载 2020-03-06 14:26:42 · 186 阅读 · 0 评论 -
MySQL优化命令汇总
1、查看当前服务器配置的最多连接数 -- 查看当前服务器配置的最多连接数 show variables like 'max_connections'; #设置方法: set GLOBAL max_connections=10000;2、查看当前已使用最大连接数SHOW GLOBAL STATUS LIKE '%max_used_connecti...转载 2020-03-06 14:21:42 · 220 阅读 · 0 评论 -
Mysql常用命令行大全
第一招、mysql服务的启动和停止net stop mysqlnet start mysql第二招、登陆mysql语法如下: mysql -u用户名 -p用户密码键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:mysql>注意,如果是连接到另外的机器上,则需要加入一个参数-h机...转载 2020-03-06 14:15:03 · 151 阅读 · 1 评论 -
Ubuntu命令行下MySQL数据导出与导入
mysqldump -h主机 -u用户名 -p 数据库名 > 导出的数据库名.sql几个比较常用的参数有:-p或--port 要连接的服务器端口,如果MySQL的端口不是3306,就要用到这个参数-d或--no-data 没有详细数据,仅仅导出数据的结构--add-drop-table 在创建表时,先drop掉已经存在的同名表[一般跟...转载 2020-03-06 11:35:52 · 437 阅读 · 0 评论 -
mysql表连接
mysql表连接转载 2020-01-03 13:20:41 · 355 阅读 · 0 评论 -
Mysql从入门到精通整理
mysql基础数据库基本概念DBMS是管理数据库的系统软件,它实现数据库系统的各种功 能。是数据库系统的核心DBA:负责数据库的规划、设计、协调、维护和管理等工作关系 :关系就是二维表。并满足如下性质: 表中的行、列次序并不重要行row:表中的每一行,又称为一条记录列column:表中的每一列,称为属性,字段主键(Primary key):用于惟一确定一个记录的字段;复...转载 2019-11-26 16:04:16 · 240 阅读 · 0 评论 -
MySQL运行原理与基础架构
1.MySQL基础 MySQL是一个开放源代码的关系数据库管理系统。原开发者为瑞典的MySQL AB公司,最早是在2001年MySQL3.23进入到管理员的视野并在之后获得广泛的应用。2008年MySQL公司被Sun公司收购并发布了首个收购之后的版本MySQL5.1,该版本引入分区、基于行复制以及plugin API。移除了原有的BerkeyDB...转载 2019-11-25 14:53:18 · 279 阅读 · 0 评论 -
Mysql总结
MySql的主要存储引擎有哪些,主要区别?MYISAM INNODE MEMORY区别:MYISAM: 它不支持事务,也不支持外键INNODE: InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全.但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引MEMORY: 使用存在内存中的内容来创建表sql功能分类D...转载 2019-11-22 09:16:07 · 222 阅读 · 0 评论