
关系型数据库MySQL
文章平均质量分 80
关系型数据库mysql
w_t_y_y
个人在线笔记~,其他博客:https://www.zhihu.com/people/wtyy666
展开
-
mysql监控--慢查询
如果慢查询日志文件变得过大,可以通过日志轮转(log rotation)将旧的日志文件存档并创建新的日志文件。),并且开启了慢查询日志,二者可能结合使用。虽然二进制日志主要用于记录数据库的更改操作,但在特定配置下,它可能也会记录与慢查询相关的某些信息。这是最主要的文件,记录了执行时间超过设置阈值的 SQL 查询。可以通过 MySQL 配置项启用慢查询日志,并指定日志文件的路径。这些文件通常包含慢查询的总体统计信息,例如查询类型分布、执行时间最长的查询等。文件是慢查询日志分析的汇总文件,通常由工具(如。原创 2025-02-14 09:59:23 · 420 阅读 · 0 评论 -
mysql结合Mybatis如何优化性能
1、更新优化(插入、修改、删除)数据量大的时间,批量插入大量数据可能会导致数据库崩溃,所以可分批批量插入,如现在要批量插入用户数据,可以一次插入200条;List<String> userList = new ArrayList<>();for(String userId:userIds){ userList.add(userId); if(us...原创 2018-11-29 15:37:57 · 563 阅读 · 0 评论 -
实践问题总结
将单索引改为复合索引,应先add new index,再drop old index;反之,如果drop先执行了add操作后台还在执行过程中,这段时间该表是没有索引的;drop相关的DDL应在Add或者代码变更的下一个迭代,防止兼容性问题;同一个表的DDL语句应合并;原创 2025-01-06 10:28:12 · 220 阅读 · 0 评论 -
mysql部署(2)主从复制
记住记录文件名 和 binlog日志偏移量 ,这在后面的从库创建复制命令中是必要的参数!修改配置文件需要重启生效 : systemctl restart mysqld;修改配置文件需要重启生效 : systemctl restart mysqld。(2)创建用于主从复制的用户user1。(5)查看master状态(必须)(4)刷新缓存,使配置命令生效。原创 2024-03-19 13:47:53 · 586 阅读 · 0 评论 -
mysql部署(1)单节点安装卸载
以8.0.36版本为例。原创 2024-03-15 16:12:52 · 320 阅读 · 1 评论 -
MySql调优(三)Query SQL优化(2)explain优化
6、索引优化:上面讲到子查询的优化,以及如何建立索引,而且在多个字段索引时,分别对字段建立了单个索引,后面发现其实建立联合索引效率会更高,尤其是在数据量较大,单个列区分度不高的情况下。这一条虽然order by后面的字段和索引中字段顺序相同,但是一个是降序,一个是升序,所以也会产生using filesort,同时升序和同时降序就不会产生using filesort了。order by后面的字段顺序不符合组合索引中的顺序,所以order by后面的不会走索引,即会产生using filesort。原创 2024-09-19 16:23:27 · 1806 阅读 · 0 评论 -
MySql调优(三)Query SQL优化(1)语句优化
1、delete from 删除语句加where条件,如果是删除全部记录,使用truncate table 表名,而不使用delete语句;2、尽量只查询单表,不做连接查询,需要连接查询,可以分解成多次单表查询;3、少用in查询,in查询的范围不要太大;4、少用group by语句。如果使用了group by,消除group by的无谓排序:在group by ..后面加上 orde...............原创 2019-03-29 10:40:51 · 372 阅读 · 1 评论 -
MySql调优(二)表分区
分区原创 2021-06-01 11:36:16 · 456 阅读 · 0 评论 -
MySql调优(一)综述
delete from 删除语句加where条件,如果是删除全部记录,使用truncate table 表名,而不使用delete语句。shardingjdbc篇。原创 2024-01-30 15:51:38 · 355 阅读 · 0 评论 -
MySql调优工具(2)explain执行计划
一、介绍:explain执行计划的几个属性:1、id:表示查询中select操作表的顺序,按顺序从大到依次执行(不是表中的自增主键!)。id值相同执行顺序从上到下;id值不同时id值大的先执行。2、select_type:这一列显示了对应行是简单还是复杂SELECT.取值如下:SIMPLE值意味着查询不包括子查询和UNION。查询有任何复杂的子部分,则最外层标记为PRIMARY.取值如下:3、type :该属性表示访问类型,有很多种访问类型。最常见的其中包括以下几种: ALL(全表扫描)原创 2020-10-23 10:22:27 · 593 阅读 · 0 评论 -
MySql调优工具(1)profiler诊断工具
Mysql中自带性能分析工具Profile。注意:profile仅对当前会话有效。原创 2024-01-31 14:45:51 · 672 阅读 · 0 评论 -
MySQL备份和恢复(三)binlog
数据恢复主要使用binlog的--start-position=?--stop-position=?命令来重新执行一、恢复实例:1、update未加where条件,误操作修改数据。如CREATE TABLE `t_user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY.原创 2022-03-17 11:33:13 · 1123 阅读 · 1 评论 -
MySQL备份和恢复(二)mysqldump
(2) 备份数据库:含创建库语句。(1)备份表:不含创建库语句。如:现执行drop 数据库。刷新下,数据库又还原了。不加表名则是全库备份。原创 2024-01-30 10:01:39 · 512 阅读 · 0 评论 -
MySQL备份和恢复(一)综述
对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。原创 2024-01-30 10:04:13 · 471 阅读 · 0 评论 -
mysql-binlog(二)mysqlbinlog命令
一、命令:我的mysql5.1配置文件在C:\Program Files\MySQL\MySQL Server 5.1下,而数据目录在C:\ProgramData\MySQL\MySQL Server 5.1\data下。1、读取日志并输出到屏幕上:如查询2022-03-1509:00:00到2022-03-1620:00:00数据库为 test的操作日志,并输出到屏幕上报错:1、使用mysqlbinlog命令报错ERROR: Error in Log_event::read_...原创 2022-03-16 17:36:22 · 5944 阅读 · 0 评论 -
mysql-binlog(一)介绍
binlog是二进制日志文件,用于记录mysql的数据变更,数据在恢复的时候binlog日志能起到很大的作用,mysql的主从复制就是利用的binlog原理。1、登录mysql之后使用下面的命令查看是否开启binlogshow variables like 'log_%';ON为打开,OFF为关闭,OFF状态下打开见下文2、编辑配置文件 vi /etc/my.cnf,加上以下内容server_id=2log_bin = mysql-binbinlog_format = ROW原创 2022-03-16 15:56:23 · 6783 阅读 · 0 评论 -
查询(二)多表查询----连接查询
两种方式:1)连接查询;2)合并查询一、连接查询:1、在关系数据库中,一个实例数据库可能包含多张关系表,这些关系表可能存在某种联系,我们可以根据这些联系,将表与表连接起来。这种查询设计称为连接查询。在了解连接查询之前,我们先科普一些基础知识。(1)、笛卡尔积:那什么是笛卡尔积呢?域或关系在连接时的所有可能的元组集合。 基本定义:两个关系R,S ,其度分别为n,m,则它们的笛卡尔积是所有......原创 2017-08-06 19:55:37 · 3002 阅读 · 1 评论 -
查询(一)单表查询
一、投影查询:需要注意的是这里是可以作别名查询的,如:select name as EmpName,age as EmpAge from employee;其实表也是可以取别名的,在查询中首次出现表名的地方后接as并设定别名,如:select t.name as EmpName,t.age as EmpAge from em...原创 2017-08-06 14:12:07 · 661 阅读 · 1 评论 -
SQL(一)SQL语言
1、SQL语言中有哪些常见的数据类型呢?大致可以分为7大类。下面这张表就详细的描述了每一种数据类型:2、SQL变量:原创 2017-08-07 21:00:43 · 1182 阅读 · 1 评论 -
MySQL安全(二)SQL注入
SQL注入就是指Web应用程序对用户输入数据的合理性没有进行判断,前端传入后端的参数是攻击者可控制的,并且根据参数带入数据库查询,攻击者可以通过构造不同的SQL语句来对数据库进行任意查询。原创 2024-01-29 15:59:19 · 2072 阅读 · 2 评论 -
MySQL安全(一)权限系统
name是要创建的用户名,localhost表示该用户只能从本地连接到MySQL,password是该用户的密码。如果要允许该用户从任何主机连接到MySQL,则可以将localhost改为%。issioname和localhost的含义同上。issioname和localhost的含义同上。name和localhost的含义同上。原创 2024-01-29 15:49:13 · 599 阅读 · 0 评论 -
MySQL原理(五)数据库中的事务
在计算机术语中,事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务是恢复和并发控制的基本单位。原创 2024-02-02 15:11:45 · 960 阅读 · 0 评论 -
MySQL原理(四)索引(3)索引失效与索引区分度
(1)组合索引失效:如果索引了多列,要遵守最左前缀法则,Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但必须包含最左侧的一个。例如索引是index (a,b,c),可以支持a | a,b| a,b,c |a,c这几种组合进行查找,但不支持 b|b,c|c进行查找。(5)对索引列进行计算、函数、(自动or手动)类型转换会导致索引失效,如where substr(a, 1, 3) = ‘hhh’、where a = a+1、DATE_FORMAT函数等;当in的条件多于1个时,原创 2024-01-31 15:28:44 · 761 阅读 · 0 评论 -
MySQL原理(四)索引(2)存储结构
前面提到,mysql按索引存储结构划分,主要有四种类型的索引:B-Tree索引、Hash索引、Full-text索引、R-Tree索引。原创 2024-01-31 15:32:33 · 343 阅读 · 0 评论 -
MySQL原理(四)索引(1)介绍
(一)索引的作用索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经让人难以忍受了。提升查询速度的方向一是提升硬件(内存、cpu、硬盘),二是在软件上优化(加索引、优化sql;优化sql不在本文阐述范围之内)。能在软件上解决的,就不在硬件上解决,毕竟硬件提升代码昂贵,性...原创 2018-04-27 15:37:02 · 507 阅读 · 1 评论 -
MySQL原理(三)锁定机制(2)表锁行锁与页锁
全局锁就是对整个数据库实例加锁,主要被备份工具使用,使用 逻辑方式进行备份(mydumper,mysqldump) 或 物理方式进行备份(percona-xtrabackup)。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock ,简称 FTWRL ,保证了数据的一致性,在备份数据库期间,不会因为数据或表结构的更新,而出现备份文件的数据与预期的不一样。原创 2024-01-31 09:22:21 · 1407 阅读 · 0 评论 -
MySQL原理(三)锁定机制(1)综述
业务场景中存在共享资源,多个进程或线程需要竞争获取并处理共享资源,为了保证公平、可靠、结果正确等业务逻辑,要把并发执行的问题变为串行,串行时引入第三方锁当成谁有权限来操作共享资源的判断依据。因为数据库是多用户共享资源的,在并发环境下会破坏数据库的一致性,所以需要锁来控制它们。数据库锁机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。原创 2024-01-30 16:36:03 · 1205 阅读 · 0 评论 -
MySQL原理(二)存储引擎(3)InnoDB
从Mysql5.5版本开始,InnoDB是默认的表存储引擎。默认情况下,InnoDB 存储引擎的数据目录下会有两个名为 ib_logfile0 和 ib_logfile1 的文件。在 MySQL 官方手册中将其称为 InnoDB 存储引擎的重做日志文件(redo log file)。每个 InnoDB 存储引擎至少有 1 个重做日志文件组(group),每个文件组下至少有 2 个重做日志文件,如默认的 ib_logfile0 和 ib_logfile1。原创 2024-01-29 15:38:09 · 1174 阅读 · 0 评论 -
MySQL原理(二)存储引擎(2)MyISAM
MyISAM引擎是MySQL5.5版本之前的数据库所默认的数据表引擎。每一个采用MyISAM引擎的数据表在实际存储中都是由三个文件组成,分别是frm文件保存表的结构,MYD文件保存表的数据、MYI文件保存表的索引,文件后缀为上述三个,文件名与数据表名相同。MYD和MYI与MyISAM引擎有很深的关联。说明:从MySQL8.0开始,它就可以被称为过时了。原创 2024-01-29 14:56:28 · 695 阅读 · 0 评论 -
MySQL原理(二)存储引擎(1)概述
(1)MySQL中的数据用各种不下同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。(2)存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式。(3)存储引擎是MySQL数据库中的组件,负责执行实际的数据I/O操作。(4)MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储。原创 2024-01-29 14:35:52 · 513 阅读 · 0 评论 -
MySQL原理(一)架构组成之逻辑模块(2)缓存机制
前面提到了mysql的逻辑模块中包含Query Cache。原创 2024-02-01 09:48:54 · 964 阅读 · 0 评论 -
MySQL原理(一)架构组成之逻辑模块(1)组成
各模块关系图解:原创 2024-01-28 16:25:32 · 346 阅读 · 0 评论 -
MySQL原理(一)架构组成之物理文件组成
一、物理文件组成:1、错误日志2、二进制日志原创 2024-01-28 16:02:12 · 446 阅读 · 0 评论 -
MySQL工具介绍
1、视化连接工具:MySQL有可视化连接工具,如navicat;2、自带工具:MySQL 数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如mysql,mysqladmin,mysqldump等等。本篇看下MySQL自带的工具。原创 2024-01-29 10:52:24 · 259 阅读 · 0 评论