mysql
xiangminlu
这个作者很懒,什么都没留下…
展开
-
mysql 查询优化 单表 & 连接
查询全表查询:对聚簇索引进行遍历索引查询:使用索引单表查询const原创 2020-09-25 13:19:41 · 130 阅读 · 0 评论 -
mysql数据库 总
mysql原理mysql安装事务存储引擎锁数据目录表空间数据库 redo日志数据库 字符集原创 2020-08-22 11:22:17 · 181 阅读 · 0 评论 -
MYSQL 原理
mysql 服务器程序和客户端程序mysql 安装可以下载源代码进行编译安装,也可以下载安装包进行安装。安装后,MySQL的服务器程序和客户端程序都会被安装到我们的计算机上。不过在Linux下使用RPM包时会有单独的服务器RPM包和客户端RPM包,需要分别安装。mysql 使用过程就像微信一样,mysql有客户端程序和服务器程序,客户端程序向服务器程序发送请求(增删改查),服务器程序直接和存储的数据打交道,操作数据,并返回给客户端结果。使用mysql的过程:1.启动mysql服务器程序原创 2020-07-27 16:17:08 · 204 阅读 · 0 评论 -
数据库 事务
事务的特性一个或多个数据库操作称为一个事务原子性(Atomicity):一次事务的所有操作,要么全做,要么全不做隔离性(Isolation):两个事务的各自操作,相互不影响一致性(Consistancy): 数据库中的数据全部符合现实世界中的约束MySQL仅仅支持CHECK语法,但实际上并没有一点卵用,可以通过定义触发器的方式来自定义一些约束条件以保证数据库中数据的一致性。SQL Server或者Oracle支持的CHECK语法是有实实在在的作用的,每次进行插入或更新记录之前都会检查一下原创 2020-07-29 11:24:44 · 225 阅读 · 0 评论 -
数据库存储引擎 InnoDB
存储引擎服务器支持不同的存储引擎,不同的表可以设置不同的存储引擎,真实数据在不同存储引擎中存放的格式一般是不同的,有的存储引擎将数据存放在磁盘中,有的存储引擎比如Memory,不用磁盘存储,服务器关闭后数据就消失了。InnoDBInnoDB是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启我们的数据还是存在的页规定,一页至少存放2条记录,一页16KB=16384字节行格式表的记录在磁盘上的存放方式被称为行格式或者记录格式ROW_FORMAT=行格式名称InnoD原创 2020-07-30 08:23:08 · 312 阅读 · 0 评论 -
数据库 锁
解决脏读,不可重复读,幻读,可以有两种方案:1.读操作用MVCC,写操作用加锁2. 读,写都用加锁共享锁 S锁独立锁 X锁行锁表锁 S锁 X锁 IS意向共享锁 IX意向独占锁MySQL中的行锁和表锁MySQL支持多种存储引擎,不同存储引擎对锁的支持也是不一样的其他存储引擎中的锁MyISAM、MEMORY、MERGE这些存储引擎只支持表级锁,这些引擎并不支持事务,所以使用这些存储引擎的锁一般都是针对当前会话InnoDB.原创 2020-07-30 10:33:17 · 257 阅读 · 0 评论 -
数据库 数据目录
数据库 & 文件系统存储引擎把表存储在磁盘上,操作系统用文件系统来管理磁盘,所以像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当需要读取表中的数据时,存储引擎从文件系统中读取数据并返回当需要写入数据时,存储引擎将数据写入文件系统数据目录 & 安装目录安装目录 下的bin目录,有很多可执行文件数据目录,是存储运行时产生的数据SHOW VARIABLES LIKE ‘datadir’; 查看数据目录的位置数据目录1. 数据库在文件系原创 2020-07-30 12:52:32 · 2516 阅读 · 0 评论 -
数据库 表空间
表空间结构表空间分为 系统表空间(存放多个表的表空间)和独立表空间(每个表都对应一个自己的表空间)表空间中的页号是4字节,32位,所以,一个表空间最多有2^32个页面一页=16KB, 表空间=162^32=64TB区=64个页=6416KB=1M,一个区就是在物理位置上连续的64个页,在表中数据量大的时候,为某个索引分配空间的时候就不再按照页为单位分配了,而是按照区为单位分配,虽然可能造成一点点空间的浪费(数据不足填充满整个区),但是从性能角度看,可以消除很多的随机I/O(在进行范围查找)一组原创 2020-07-31 11:13:36 · 818 阅读 · 0 评论 -
数据库 redo日志(未完)
持久性磁盘上的页缓存到内存中的Buffer Pool之后才可以访问,在内存中的Buffer Pool中对数据进行的修改,需要写回到磁盘中,才能保证数据的持久性把事务所修改的所有页面都刷新到磁盘,存在问题:修改很少的数据,却要把整个页面刷新回磁盘,太浪费修改的页面不相邻,需要随机IO,随机IO很慢对修改的数据,记录在 redo日志中,将redo 日志写回磁盘redo 日志占用内存小redo 日志 是顺序IO,因为redo日志是按照日志生成顺序记录的redo 日志 结构物理原创 2020-08-02 10:12:25 · 559 阅读 · 0 评论 -
数据库 字符集
有哪些主要的字符集?ASCII字符集:共收录128个字符,用1个字节来进行编码。ISO 8859-1字符集:共收录256个字符,用1个字节来进行编码。GB2312字符集:收录汉字,兼容ASCII字符集,采用变长编码方式, 如果该字符在ASCII字符集中,则采用1字节编码。否则采用2字节编码。GBK字符集:只是在收录字符范围上对GB2312字符集作了扩充,编码方式上兼容GB2312。utf8字符集: 收录地球上能想到的所有字符,而且还在不断扩充。集兼容ASCII字符集,采用变长编码方式,编码一个字原创 2020-08-05 09:02:40 · 2656 阅读 · 0 评论 -
mysql数据库安装和navicat for mysql
MYSQL数据库mysql的安装细节可以按照一下链接进行操作,有两种方式,可以选择自己喜欢的方式,我用的第二种解压安装包安装方式,安装之后,就可以在终端进行数据库操作。https://www.cnblogs.com/zaid/p/MySQL.html如果不习惯在终端操作数据库,就可以安装个navicat for mysql,进行可视化图形界面操作,更方便一些。...原创 2020-04-05 20:27:17 · 246 阅读 · 0 评论