![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
mysql学习
lensen明
knock code with life!!!
展开
-
MySQL之InnoDB锁机制
InnoDB存储引擎中的锁锁的类型InnoDB存储引擎实现了如下两种标准的行级锁:共享锁(S Lock):允许事务读一行数据。排他锁(X Lock):允许事务删除或更新一行数据。如果一个事务 T1 已经获得了行 r 的共享锁,那么另外的事务 T2 可以立即获得行 r 的共享锁,因为读取并没有改变行 r 的数据,称这种情况为锁兼容。但若有其他的事务 T3 想获得行 r 的排他锁,则其必须等待事务T1、T2释放行 r 上的共享锁这种情况称为锁不兼容。即共享锁不互斥获取,排他锁互斥获取。共享锁与排原创 2020-12-30 09:39:56 · 2728 阅读 · 6 评论 -
MySQL之InnoDB存储引擎深入理解
参考自《MySQL技术内幕InnoDB存储引擎》继前文对MySQL的存储引擎做一个全面的介绍之后,现在我们针对主流的InnoDB存储引擎深入理解。一、InnoDB体系架构InnoDB是事务安全的 MySQL存储引擎。支持ACID事务的储存引擎,特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效地利用以及使用内存和CPU。首先,在深入介绍InnoDB存储引擎之前,我们先来了解下InnoDB的体系架构:后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存原创 2020-12-28 16:06:35 · 278 阅读 · 0 评论 -
MySQL体系结构与存储引擎
目录一、性能化简介1.1 通过性能剖析进行优化参考自《高性能MySQL》对于服务器端的开发来说,服务器的性能不言而喻,这是直接影响用户体验的,那么针对服务器性能方面的问题,我们最常碰到的主要有三个请求:如何判断服务器性能到了最佳状态?某条语句为什么执行不够快?用户投诉的停顿、堆积、或者卡死的某些间歇性疑难故障如何解决?带着这三个问题,我们抓住测量服务器的时间花费在哪个阶段,这一关键点来开始学习服务器关于性能的知识。一、性能化简介首先要了解服务器性能,我们要知道性能的评判标准是什么?性原创 2020-12-28 10:37:23 · 273 阅读 · 0 评论 -
MySQL索引原理以及查询优化
目录一、介绍1.1 什么是索引?1.2 为什么要有索引呢?二、索引的原理2.1 索引原理2.2 磁盘IO与预读三、索引的数据结构3.1 b+树的查找过程3.2 b+树性质3.2.1 索引字段要尽量的小3.2.2 索引的最左匹配特性(即从左往右匹配)四、Mysql索引管理4.1 功能4.2 MySQL的索引分类4.3 索引的两大类型hash与btree4.4 创建/删除索引的语法五、测试索引5.1 准备5.2 在没有索引的前提下测试查询速度5.3 加上索引六、正确使用索引6.1 覆盖索引6.2 联合索引6.3转载 2020-12-26 15:33:56 · 136 阅读 · 0 评论 -
MySQL之高性能alter table操作
一、alter table 原理MySQL的alter table操作的性能对大表来说,是一个大问题,为什么呢?我们来看看alter table的底层原理,大多数情况下(有的时候未必会重建表),当我们执行一个alter table操作后,其底层会执行如下几个操作:用一个新的结构创建一个空表;从旧表中查出所有数据插入新表;然后删除旧表。当数据表特别大的时候,这样的操作严重影响了效率,因此,在实际开发中,我们应该避免这样的耗时操作,采用高效的操作。对于常见的场景,我们能使用的一般有两种方法:原创 2020-12-25 16:45:21 · 1717 阅读 · 2 评论 -
MySQL事务理解
本文参考自《高性能MySQL》知道数据库的人都应该清楚,事务是数据库高级特性的基础,如果你不了解事务的话,那基本可以确定你并不会数据库,好了,废话不多说了,直接切入主题吧!一、什么是事务首先,什么是事务呢?在数据库里,事务就是一组原子性的SQL查询,或者说一个独立的工作单元。简而言之就是一组执行特定功能的SQL语句,这些语句要么都执行成功,要么都执行失败,不能可能部分成功或者部分失败。这样一个过程就称做事务。二、事务的特性既然谈到事务,那就不可能避免地要谈及事务的特性;事务具有ACID的特性,那原创 2020-12-23 20:37:11 · 102 阅读 · 0 评论 -
MySQ压缩包自定义安装问题及配置文件编写
官网下载MySQL压缩包下载安装包在自定义的路径中解压,并且在系统环境Path路径中配置MySQL安装路径下的lib环境变量编写配置文件my.ini在MySQL安装目录下编写配置文件,my.ini(MySQL程序内部只识别该名字的配置文件必须这个名字),配置文件的内容如下:[mysqld]basedir=(你的MySQL安装目录下)datadir=(你的MySQL安装目录下)\data\port=3306 #端口号,可以自己自定义更改,建议使用3306端口号skip-grant-tab原创 2020-11-10 20:58:22 · 138 阅读 · 0 评论 -
linux中mysql记录插入无法输入中文的问题
在Linux安装完mysql时,向数据库中插入记录,若记录包含中文,无法插入,大部分会有类似如下提示:因为数据库内的字符编码不包含中文的字符编码,我们可以使用show create table <表名> 命令来查询表的一些属性信息也可以使用show create database <数据库名>来查询数据库的一些信息如下所示:(插入中文字符有两种形式:1.我们可以修改数据库的...原创 2020-03-06 18:03:33 · 2464 阅读 · 0 评论