
MySQL数据库
文章平均质量分 75
mysql数据库学习笔记
小小程序员.¥
努力学习,乐观生活,做更好的自己。
展开
-
读写分离/双主双从
读写分离就是把数据库的读和写分开,以对应不同的数据库服务器,主数据库提供写操作,从数据库提供读操作,这样能有效地缓解单平台数据库的压力;通过mycat即可轻易实现上述功能,不仅可以支持MySQL,也可以支持哦Oracle和SQL server;主要是要开启balance读写分离机制。3.搭建两个主库之间的复制账号。俩个库都需要创建用户。原创 2025-02-21 17:11:52 · 157 阅读 · 0 评论 -
Mycat中间件
Mycat是采用java语言开发的开源数据库中间件,支持windows和linux运行环境,下面介绍Mycat和Linux中的环境搭建。Mycat是开源的,活跃的、基于java语言编写的MySQL数据库中间件。可以像使用MySQL一样使用mycat,对于开发人员来说根本感觉不到mycat的存在;使用vim命令修改/etc/profile文件,在文件末尾加入如下配置。进入/usr/local/mycat/lib。(3)删掉mysql5版本的驱动包。(2) 解压MyCat的压缩包。(1)上传mycat安装包。原创 2025-02-17 00:45:45 · 465 阅读 · 0 评论 -
MySQL的分库分表
分库分表的中心思想就是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的;1.IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率降低,请求数据太多,带宽不够,网络IO瓶颈;每个库的数据也不一样;(1)水平分库:以字段为依据,按照一定策略,将一个库的数据拆分到多个库中;特点:每个库的表结构都一样,每个库的数据都不一样;(2)水平分表:以字段为依据,按照一定策略,将一个表的数据拆分到多个表中;特点:每个库的表结构都一样,每个库的数据都不一样;原创 2025-02-16 23:42:23 · 309 阅读 · 0 评论 -
Linux安装MySQL
2.在Linux创建Linuxmysql文件夹,并解压。3.切换到linuxmysql目录按顺序解压。1.下载MySQL安装包。大C是安装到指定目录。原创 2025-02-16 15:18:59 · 177 阅读 · 0 评论 -
MySQL的日志/主从复制
二进制日志(binlog)记录了所有的DDL(数据定义语言)语句喝DML(数据操纵语言)语句,但不包括数据查询(select、show)语句。对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清楚,将会占用大量的磁盘空间,可以通过以下几种方式清理日志;purge master logs to 'binlog.*******':删除******编号之前的所有日志;statement:基于SQL语句的日志记录,记录的是SQL语句,对数据进行修改的SQL都会记录在日志文件中;原创 2025-02-14 18:15:47 · 442 阅读 · 0 评论 -
MYSQL的管理备份
performance_schema:为MySQL服务器运行时状态提供了一个底层监控功能,主要用于收集数据库服务器性能参数;sys:包含了一系列方便DBA和开发人员利用performance_schema性能数据库进行性能调优和诊断的视图;information_schema:提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类型及访问权限等;mysql:存储MySQL服务器正常运行所需的各种信息(时区、主从、用户、权限等);原创 2025-02-13 17:45:20 · 312 阅读 · 0 评论 -
MySQL的innoDB引擎
buffer pool:缓冲池是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定的频率刷新到磁盘,从而减少磁盘io,加快处理速度。页:是innodb存储引擎磁盘管理的最小单元,每个页的大小默认为16kb,为了保证页的连续性,innodb存储引擎每次从磁盘申请4-5个区;区:表空间的单元结构,每个区的大小都为1M,默认情况下,innoDB存储引擎页大小为16k,即一个区中一共有64个连续页;原创 2025-02-12 02:01:39 · 155 阅读 · 0 评论 -
MySQL的锁
锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除传统的计算机资源(cpu、ram、I/O)的争用以外,数据也是一种供许多用户共享的资源,任何保证数据库并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也是更加复杂。(3)行级锁:每次操作锁住对应的行数据;(1)全局锁:锁定数据库中所有表;(2)表级锁:每次操作锁住整张表;原创 2025-02-11 14:28:44 · 236 阅读 · 0 评论 -
视图/存储过程/存储函数/触发器
当使用with check option子句创建视图时,MySQL会通过视图检查正在更改的每个行,例如插入,更新,删除,以使其符合视图的定义,MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性,为了确定检查的范围,MySQL提供了两个选项:cascaded和local,默认值为cascaded。查询指定数据库的存储过程及状态信息。视图(view)是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。原创 2025-02-07 01:40:26 · 796 阅读 · 0 评论 -
SQL优化
using filesort:通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫filesort排序;(2)页分裂:页可以为空,也可以填充一半,也可以填充100%,每个页包含了2-N行数据(如果一行数据多大,会行溢出),根据主键排序。(1)数据组织方式:在innodb存储引擎中,表数据都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(IOT);主键顺序插入:1,2,3,4,6,8,43,77。原创 2025-02-03 21:01:09 · 352 阅读 · 0 评论 -
MySQL数据库基础(一)
insert into 表名(字段名1,字段名2,...) values(值1,值2,...),(值1,值2,...),(值1,值2,...);注意:插入数据时,指定的字段顺序要与值的顺序是一一对应的,字符串和日期型数据应包含在引号中,插入数据的大小,应该在字段规定范围内。1.给指定字段添加数据:insert into 表名(字段名1,字段名2,...) values(值1,值2,...);insert into 表名 values(值1,值2...),(值1,值2...),(值1,值2...);原创 2023-11-29 22:16:43 · 889 阅读 · 0 评论 -
MySQL数据库基础(二)
Mysql数据库基础大全,一篇足以原创 2023-06-13 21:41:38 · 766 阅读 · 0 评论 -
MySQL的函数
case [expr] when [val1] then [res1] ... else [default] end:如果expr的值等于val1,返回res1,...否则返回default默认值。substring(str,start,len):放回从字符串str从start位置起的len个长度的字符串。lpad(str,n,pad):左填充,用字符串pad对str的左边进行填充,达到n个字符串长度。rpad(str,n,pad):有填充,用字符串pad对str的右边进行填充,达到n个字符串长度。原创 2023-11-30 20:25:53 · 626 阅读 · 0 评论 -
MySQL的约束
set null:当父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(这就要要求外键允许取null)cascade:当父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录。no action:当父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。restrict:当父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。原创 2023-12-01 12:13:59 · 496 阅读 · 0 评论 -
MySQL的多表查询
select a.name '员工', b.name'领导'from emp a left join emp b on a.managerid = b.id;关系:一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情直段放在另一张表中,以提示操作效率。select 字段列表 from 表a 别名a join 表a 别名b on 条件...;对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集。根据子查询位置,分为:where之后,from之后,select之后。原创 2023-12-04 15:18:41 · 758 阅读 · 0 评论 -
MySQL的事务
事务是一组操作的集合,它是一个不可分隔的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现该行数据已存在,好像出现了‘幻影’默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务。不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称为不可重复读。注意:事务的隔离级别越高,数据越安全,但是性能越低。回滚事务(结束该事务)原创 2023-12-05 18:13:04 · 531 阅读 · 0 评论 -
MySQL的存储引擎
xxx.idb:xxx代表的是表名,使用该引擎的每张表都会生成一个这样的表空间文件,存储该表的结构(fem,sdi),数据和索引。存储引擎就是存储数据,建立索引,更新/查询数据等技术的实现方式,存储引擎是基于表的,索引存储引擎也被称为表类型.这是一种兼顾高可靠性和高性能的通用存储引擎,在mysql5.5之后,为MySQL的默认引擎。表数据存储在内存中,由于受到硬件问题,或断电问题的影响,只能将这些表作为临时表,或缓存使用。主要将数据存储在文件系统上,并完成与存储引擎的交互。1.在创建表的时候指定存储引擎。原创 2024-08-14 23:59:16 · 382 阅读 · 0 评论 -
MySQL的索引
MySQL索引数据库结构对经典的B+Tree进行了优化,在原B+Tree的基础上,增加一个指向相邻子叶节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能。2.对于B+Tree,无论叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,指针跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低;缺点:索引也是要占用空间的,索引大大提高了查询效率,同时也降低更新表的速度,如对表进行insert,update,delete,效率降低。(树的度数指的是一个节点的子节点个数)原创 2025-01-16 18:09:30 · 936 阅读 · 0 评论