
Mysql
文章平均质量分 70
Mysql相关知识总结
Artisan_w
这个作者很懒,什么都没留下…
展开
-
Mysql的BufferPool
磁盘太慢,用内存作为缓存很有必要。Buffer Pool本质上是InnoDB向操作系统申请的一段连续的内存空间,可以通过innodb_buffer_pool_size来调整它的大小。Buffer Pool向操作系统申请的连续内存由控制块和缓存页组成,每个控制块和缓存页都是一一对应的,在填充足够多的控制块和缓存页的组合后,Buffer Pool剩余的空间可能产生不够填充一组控制块和缓存页,这部分空间不能被使用,也被称为碎片。InnoDB使用了许多链表来管理Buffer Pool。原创 2024-02-01 16:31:23 · 888 阅读 · 0 评论 -
Mysql数据库锁--全局锁、表锁、行锁
根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。原创 2024-02-01 15:23:47 · 1368 阅读 · 0 评论 -
Mysql查询与更新语句的执行
FROM:对 FROM 子句中的左表<left_table>和右表<right_table>执行笛卡儿积(Cartesianproduct),产生虚拟表 VT1ON:对虚拟表 VT1 应用 ON 筛选,只有那些符合<join_condition>的行才被插入虚拟表 VT2 中JOIN:如果指定了 OUTER JOIN(如 LEFT OUTER JOIN、RIGHT OUTER JOIN),那么保留表中未匹配的行作为外部行添加到虚拟表 VT2 中,产生虚拟表 VT3。原创 2024-01-12 14:50:49 · 534 阅读 · 0 评论 -
Mysql如何优化慢查询
尽量使用 Join 语句来替代子查询,因为子查询是嵌套查询,而嵌套查询会新创建一张临时表,而临时表的创建与销毁会占用一定的系统资源以及花费一定的时间,同时对于返回结果集比较大的子查询,其对查询性能的影响更大。MySQL 处理 union 的策略是先创建临时表,然后将各个查询结果填充到临时表中最后再来做查询,很多优化策略在 union 查询中都会失效,因为它无法利用索引。慢 SQL 的优化,主要从两个方面考虑,SQL 语句本身的优化,以及数据库设计的优化。使用游标,只能一页一页的翻。原创 2024-01-12 14:12:18 · 547 阅读 · 0 评论 -
Mysql的in与exits
IN和EXISTS是MySQL中用于子查询的两种不同的条件操作符。它们在使用和实现上有一些区别。原创 2024-01-12 11:11:09 · 1241 阅读 · 0 评论 -
Mysql主从复制
MySQL复制(Replication)是一种用于在多个MySQL服务器之间复制数据的机制。这种机制通过将更改从一个MySQL数据库服务器传递到其他MySQL服务器,从而保持多个服务器上的数据一致性。1、读写分离: 通过在主服务器上执行写操作,然后将这些更改复制到多个从服务器上,可以实现读写分离。主服务器处理写入操作,而从服务器用于处理读取操作,从而提高性能和扩展性。2、数据备份: 复制可以用作数据备份的一种形式。原创 2024-01-11 18:54:47 · 1353 阅读 · 0 评论 -
Mysql是怎样运行的--下
所以在某个事务提交后,重用这个事务的insert undo链表(这个链表中只有一个页面)时,可以直接把之前事务写入的一组undo日志覆盖掉,从头开始写入新事务的一组undo日志。我们修改了Buffer Pool中某个缓存页的数据,那它就和磁盘上的页不一致了,这样的缓存页也被称为脏页,我们创建一个存储脏页的链表,凡是修改过的缓存页对应的控制块都会作为一个节点加入到一个链表中,因为这个链表节点对应的缓存页都是需要被刷新到磁盘上的,所以也叫flush链表,数据结构与free链表一样。原创 2024-01-10 17:05:24 · 1123 阅读 · 0 评论 -
Mysql是怎么运行的(上)
Mysql是怎样运行的读书笔记原创 2024-01-10 16:56:26 · 1272 阅读 · 0 评论 -
Centeos安装mysql
因为这个会和MySQL有冲突,所以先检查一下是否有安装#查看mariadb#卸载mariadb,mariadb-libs-5.5.44-2.el7.centos.x86_64是上一步查看显示出来的#删除etc目录下的my.cnf。原创 2023-12-11 16:52:36 · 361 阅读 · 0 评论 -
Mysql表字段类型
数据类型https://www.sjkjc.com/mysql/varchar/MySQL 中的数据类型包括以下几个大类:字符串类型数字类型日期和时间类型二进制类型地理位置数据类型JSON 数据类型MySQL 字符串数据类型VARCHAR:纯文本字符串,字符串长度是可变的。CHAR: 纯文本字符串,字符串长度是固定的。当实际字段内容小于定义的长度时,MySQL 会用空白空白符好补足。VARBINARY:二进制字符串,字符串长度是可变的。BINARY:二进制字符串,字符串长度是固定的原创 2023-12-11 16:51:02 · 729 阅读 · 0 评论 -
mysql数据库备份与恢复
备份整个数据库备份数据库中的某个表备份多个数据库备份系统中所有数据库还原:mysql命令导入sql文件还原执行前需要先创建dbname数据库,如果backup.sql是mysqldump创建的备份文件则执行是不需要dbname。执行source命令前需要先选择数据库。原创 2023-12-11 16:49:56 · 522 阅读 · 0 评论 -
Mysql优化--官方文档
数据库性能取决于数据库级别的多个因素,例如表、查询和配置设置。这些软件构造会导致硬件级别的 CPU 和 I/O 操作,您必须最大限度地减少这些操作并使其尽可能高效。当您研究数据库性能时,您首先要学习软件方面的高级规则和指南,并使用挂钟时间测量性能。当您成为专家时,您会更多地了解内部发生的情况,并开始测量 CPU 周期和 I/O 操作等内容。典型用户的目标是从现有的软件和硬件配置中获得最佳的数据库性能。原创 2023-12-06 15:40:32 · 445 阅读 · 0 评论 -
Mysql大数据量删除
在一些操作中,可能需要清理一下积压的数据,如果数据量小的话自然没有问题,但是如果是个大数据量的问题,那么就该考虑一个合适的办法了。在清理大数据量的时候需要考虑是清理部分数据还是清理所有数据,这两种场景有着不同的策略。注意:本次测试与方法均针对mysql5.7,存储引擎为InnoDB。原创 2023-12-06 15:39:21 · 1441 阅读 · 0 评论 -
Mysql索引失效
在联合索引中,最左侧的字段优先匹配。因此,在创建联合索引时,where子句中使用最频繁的字段放在组合索引的最左侧。原创 2023-12-06 15:38:47 · 459 阅读 · 0 评论 -
mysql编码方式
(设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)修改mysql的配置文件my.ini,该文件目录一般为/etc/my.ini。character_set_connection为建立连接使用的编码;character_set_server数据库服务器的编码;character_set_client为客户端编码方式;character_set_database数据库的编码;character_set_results结果集的编码;数据库的编码为latin1。原创 2023-12-06 15:38:05 · 408 阅读 · 0 评论 -
mysql的组合查询
在 MySQL 中,内连接(INNER JOIN)是一种根据两个或多个表之间的匹配条件,将多个表中的数据进行联接的操作。内连接只返回符合联接条件的行,而不会返回未匹配的行。原创 2023-12-06 15:36:28 · 1562 阅读 · 0 评论 -
mysql的show full processlist状态详解
Copying to tmp table [on disk]: 线程正在执行查询,并且将结果集都复制到另一个临时表中,这种状态一般是要么在做group by 操作,要么是文件排序或者是union操作。Copying to tmp table: 表示当前连接正在将数据复制到临时表中,通常发生在 GROUP BY 或 ORDER BY 等操作执行时。Repair by sorting: 表示当前连接正在对表进行排序,以修复表中的数据。Analyzing: 表示当前连接正在分析查询,以确定最佳查询计划。原创 2023-12-06 15:34:12 · 1502 阅读 · 0 评论 -
Mysql远程连接设置
我们需要将这个值改为远程连接 ip 可访问,可使用通配符 ip 地址 *, ::, 0.0.0.0 ,当然也可以是单独的固定 ip,这样就仅允许指定 ip 连接,更加安全。2、查看max_connections=100的配置参数,修改为max_connections=1000;在某些 MySQL 版本的配置文件中,没有 bind - address 这一行,这种情况下,在合适的位置加上就可以了。1、查看数据库当前连接信息,可以看到连接数据库的进程id,ip,用户名,连接的数据库,连接状态,连接时长等。原创 2023-12-06 15:33:12 · 738 阅读 · 0 评论 -
msyql查看表死锁情况
/2.杀掉查询结果中锁表的trx_mysql_thread_id。查询到相对应的进程===然后 kill id。//1.查看当前数据库锁表的情况。2、另外一种查询锁方法。原创 2023-12-06 15:31:31 · 983 阅读 · 0 评论 -
Mysql支持ssl
注:have_openssl 与 have_ssl 值都为YES表示ssl开启成功。2、修改 MySQL 数据目录的CA 证书和服务端 SSL 文件所属用户与组。1、复制 CA 证书和服务端SSL文件至MySQL 数据目录。4、重启MYSQL服务,并检查数据库SSL是否开启状态。4、将生成的私钥转换为 RSA 私钥文件格式。5、用CA 证书来生成一个服务器端的数字证书。7、将生成的私钥转换为 RSA 私钥文件格式。8、用CA 证书来生成一个客户端的数字证书。2、通过 CA 私钥生成数字证书。原创 2023-12-06 15:30:49 · 648 阅读 · 0 评论 -
Mysql索引
索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。例如:有一张person表,其中有2W条记录,记录着2W个人的信息。有一个Phone的字段记录每个人的电话号码,现在想要查询出电话号码为xxxx的人的信息。如果没有索引,那么将从表中第一条记录一条条往下遍历,直到找到该条信息为止。原创 2023-12-06 15:28:32 · 694 阅读 · 0 评论 -
innoDB与MyISAM
innoDB与MyISAMInnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构),必须要有主键,通过主键索引效率很高。但是辅助索原创 2023-12-06 15:27:38 · 385 阅读 · 0 评论 -
Mysql的外键约束
MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等 4 种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西瓜,其它的水果都是不能购买的。主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。原创 2023-12-06 15:23:58 · 446 阅读 · 0 评论 -
B树与B+树
B-Tree的特点1,叶节点具有相同的深度2,所有的索引元素不能重复3,叶节点的数据从左往右递增B+树的特点1,非叶子节点不能存储数据2,所有的索引元素不能重复3,所有的叶子节点用指针连接,提高区间访问性能数据结构仿真...原创 2020-04-06 14:15:08 · 361 阅读 · 0 评论 -
Mysql主从架构与实例
从数据库收到请求后,将其应用到自己的数据库中,以便保持与主数据库的一致性。其中,server-id代表从服务器的ID号,可以设置任意整数,不同主从服务器ID必须不同,relay-log代表开启中继日志,read-only代表从服务器只读。1、提高系统的读取性能和可用性:从数据库可以分担主数据库的读取请求,提高系统的读取性能,并且从数据库可以在主数据库不可用时接管读取请求。其中,主服务器IP代表主服务器的IP地址,File和Position代表从步骤7中获取到的主服务器的二进制日志文件名和偏移量。原创 2023-02-16 23:02:08 · 1082 阅读 · 0 评论 -
Mysql存储过程大全
mysql的存储过程详解原创 2022-09-20 15:11:23 · 5502 阅读 · 0 评论 -
group by 与 order by的用法
group by、having与order by的基本用法原创 2022-08-16 10:05:38 · 1853 阅读 · 0 评论 -
Mysql的执行日志
通过指令方式查看数据库的日志与执行状态原创 2022-08-16 09:53:43 · 5106 阅读 · 0 评论 -
Mysql的远程连接设置
Mysql远程连接设置原创 2022-08-16 09:44:24 · 20469 阅读 · 0 评论 -
mysql的优化策略
mysql的优化策略MySQL 数据库常见的优化手段分为三个层面:SQL 和索引优化、数据库结构优化、系统硬件优化等,然而每个大的方向中又包含多个小的优化点。1.索引优化假如我们没有添加索引,那么在查询时就会触发全表扫描,因此查询的数据就会很多,并且查询效率会很低,为了提高查询的性能,我们就需要给最常使用的查询字段上,添加相应的索引,这样才能提高查询的性能。①使用正确的索引避免在 where 查询条件中使用 != 或者 <> 操作符,因为这些操作符会导致查询引擎放弃索引而进行全表扫描。原创 2023-12-06 15:26:36 · 1251 阅读 · 0 评论 -
Mysql中的 Explain 语句字段意义
explain(执行计划)包含的信息十分的丰富,着重关注以下几个字段信息。执行 explain select * from table_name;会得出以下结果:其中,比较重要的结果如下所示:①id,select子句或表执行顺序,id相同,从上到下执行,id不同,id值越大,执行优先级越高。②type,type主要取值及其表示sql的好坏程度(由好到差排序):system>const>eq_ref>ref>range>index>ALL。保证range,最好到原创 2021-12-06 15:16:56 · 678 阅读 · 0 评论 -
Mysql读写分离简介
读写分离是利用数据库的复制技术,将读和写分布在不同的处理节点上,从而达到高可用性和扩展性的目的。主数据库提供写操作,从数据库提供读操作,在很多系统中更多的是读操作。当数据库进行写操作的时候,数据要同步到从数据库,这样才能有效的保证数据库的完整性。Mysql也有自己的同步数据的技术。Mysql通过二进制日志来复制数据,在主数据库同步到从数据库之后,从数据库一般由多态数据库分配。Mysql提供了Mysql Proxy来实现读写分离。目前较为常见的有两种读写分离实现方式:1,在代码中根据Select、Inse原创 2020-08-18 16:56:24 · 222 阅读 · 0 评论 -
内连接和左连接,右连接和全连接的区别
left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。 right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。 inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。 full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。 左连接主表是左边的表,右连接主表是右边的表,内连接,全连接左右两表是平等关系,...原创 2020-08-18 16:33:18 · 604 阅读 · 0 评论 -
Mysql的分库分表及两种方式
随着业务的发展,单机Mysql的性能已经不足以支撑我们的业务发展,传统的应对方式是读写分离,但是读写分离方案是针对读的,对于写并没有很好的扩展,如果写压力很大还是会存在性能瓶颈。于是在读写分离的同时同时采用以下几种方式扩展:1,采用分库分表的方式将数据路由拆分到多个数据库2,采用newSql其中对于分库分表的概念需要做一下了解:1,分库是将一个表拆分后存入不同的数据库中,每个库的表名相同、数据不同;2,分表是指一个库中将一个表拆分为不同的表名,在效果上类似于分区。分库可以将数据放在不的数据库中原创 2020-08-18 16:01:35 · 506 阅读 · 0 评论 -
Mysql5.7新特性----索引条件下推
索引条件下推(ICP,Index Condition Pushdown),ICP是Mysql针对索引从表中检索时的一种优化特性,在没有ICP的特性如下:1,根据索引读取一条索引记录,然后使用索引的叶子节点中的主键值回表读取整个表行。2,判断这行记录十一否符合where条件有ICP处理后,1,根据索引读取一条索引记录,但并不回表取出整行数据2,判断记录是否满足where条件的一部分,并且只能使用索引字段进行检查。如果不满足条件则继续获取下一条索引记录。3,如果满足条件则返回整行回表信息。4,再判原创 2020-08-18 15:29:11 · 388 阅读 · 0 评论 -
MySQL千万级别大表,你要如何优化
千万级别的数据库优化MySQL千万级别大表,你要如何优化?没法转载,先保存,感觉写的好全当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、MEDIU转载 2020-07-23 22:18:27 · 237 阅读 · 0 评论 -
Mysql的索引的用法
优点:通过建立唯一索引或者主键索引,保证数据库表中每一行数据的唯一性,大大提高检索的数据的效率以及减少表的检索的行数缺点:创建索引和维护索引需要消耗时间,而且会随着数据量的增加而增加;索引文件会占用物理空间;对表进行增删改的时候,索引也需要动态维护,这样会降低数据的维护速度。索引分类单列索引:一个索引包含一个列主键索引,唯一索引,普通索引组合索引:一个组合索引包含两个或者两个以上的列基本使用方法普通索引CREATE INDEX 索引名 ON 表明(字段名)ALTER TABLE 表名 A原创 2020-07-20 10:56:42 · 116 阅读 · 0 评论 -
索引基础-mysql
索引的概念什么是索引?索引是为了加速对表中的数据检索而创建的一种分散的存储结构。索引是针对于表而建立的,他是由数据页面外的索引页面组成,每个索引页面都会包含逻辑指针,以便加速检索物理数据。索引的作用?当表中有大量的记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,将所有记录一一取出,和查询的条件一一对比,然后满足条件的记录,这样做会大量消耗数据库的系统时间,并且造成大量磁盘的I/O操作;如果我们建立索引,然后在索引中查找符合条件的索引值,通过保存在索引中的ROWID(相当于页码)快速找到表中对原创 2020-06-03 21:34:06 · 174 阅读 · 0 评论 -
Mysq性能指标
1,吞吐量单位时间的事务处理数。2,响应时间或者延迟用于测试任务所需要的时间。3,并发性任意时间有多少同时发生的并发请求。4,可扩展性系统增加一倍的资源(例如CPU个数),可以获得两倍的吞吐量。...原创 2020-06-02 10:45:16 · 155 阅读 · 0 评论 -
事务-mysql
事务:事务是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够对数据库应用该组查询的全部语句,那么就执行改单元的全部语句。如果该单元的任何一条语句崩溃或者其它原因无法执行,那么所有的语句都不会执行。简而言之,该单元的语句要么全部执行,要么全部不执行。ACID 测试:原子性(atomicity):一个单元的操作要么全部执行,要么全部不执行。不能只执行其中一部分。一致性(consistency):数据库总是从一个一致性状态转换到另一个一致性状态。隔离性(isolation):通常原创 2020-06-01 21:07:32 · 221 阅读 · 0 评论