Mysql技术内幕之InnoDB锁的深入讲解
前言自7月份换工作以来,期间一直在学习MySQL的相关知识,听了一些视频课,但是一直好奇那些讲师的知识是从哪里学习的。于是想着从书籍中找答案。毕竟一直看视频也不是办法,不能形成自己的知识。于是想着看书汲取知识,看了几本MySQL的相关书籍,包括《深入浅出Mysql》《高性能Mysql》《Mysql...
2024-01-10JDBC内幕subquery
subquery子查询指一个查询语句嵌套在另一个查询语句内部的查询,在 SELECT 子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表,子查询中常用的操作符有 ANY(SOME)、ALL、IN 和 EXISTS。常见形式如下数据中间件一般处理subquery思路是拆分SQL语句,先查询...
2024-01-10BaikalDB技术实现内幕(一)分布式事务实现
本系列文章主要介绍HTAP数据库BaikalDB的技术实现细节。作者介绍:罗小兵,百度商业平台研发部高级研发工程师,主要负责BaikalDB事务能力,全局二级索引等方向的研发工作。欢迎关注 Star github.com/baidu/BaikalDB一、概述BaikalDB系统简介BaikalDB是一个分布式可扩展的存储系统,兼容MySQL协议,整个系统...
2024-01-10mysql操作进阶
# ### part1 单表查询# sql 查询语句的完整语法 """ select .. from .. where .. group by .. having .. order by .. limit .. """# 一.where 条件的使用 """功能:对表中的数据进行筛选过滤""" """ 语法: 1.判断的符号: = > < >= <= != <> 不等于 2.拼接条件的关键字 and or not 3.查询的区间范围值 between between 小值 and 大值 [小值,大...
2024-01-10mysql标识列的特点
1、标识列不一定要和主键搭配,但要求是key。2、一个表最多有一个标识列。3、标识列的类型只能是数值型。通过SET auto_increment_increment=3,标识列可以设置步长。4、起始值可通过手动插入设置。实例DROP TABLE IF EXISTS tab_id; CREATE TABLE tab_id(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20)); INSERT INTO t...
2024-01-10mysql的一些知识点
单表优化:考虑使用ref(使用了非唯一索引),或range(使用了索引) index 是遍历了索引后进行回表遍历 all 直接查全表 extra不要有using filesort(有第二次查询,一般伴随着order by), 和using where(表示需要进行回表操作) using temporar (已经有表了,...
2024-01-10mysql主从复制策略的介绍
说明1、全同步,master要求服务时,等待slave全部同步后才会回应client端。2、半同步,master请求服务时,只需要任何slave同步。3、异步,master同步,无论slave的状态,用默认状态。实例(1)查看server1的uuid[root@server1 mysql]# cat /var/lib/mysql/auto.cnf[auto]server-uuid=db6e25ff-b049-11e9-84f5-525400ca9499 (2)在server1...
2024-01-10mysql入门(一)
数据库介绍数据库是在计算机出现以后,为了解决计算机存储问题而创建,数据库中包含表,表当中才是数据。数据库的发展史1. 萌芽阶段所有存储依赖的都是文件,安全性低,查找非常困难。2. 层次模型1). 优点:查询分类的效率高;2). 缺点:导航结构:如果查找同类别数据,效率低。数据不完整(如下图)...
2024-01-10mysql初选条件
如果主条件匹配,返回结果基于主条件,无论二级条件是否匹配,如果没有匹配结果,则返回二级条件的数据库。mysql初选条件以交换外汇为例,我有一个汇率表,我需要拿到美元汇率:英镑,如果没有,那么得到英镑汇率:美元。如果两者都有,只返还美元:英镑。id origin_currency target_currency rate_fr...
2024-01-10mysql死锁的检测
说明1、检测死锁:数据库系统实现了各种死锁检测和死锁超时机制。InnoDB存储引擎可以检测到死锁的循环依赖,并立即返回错误。2、外部锁的死锁检测:InnoDB不能完全自动检测死锁,则需要设置锁等待超时参数innodb_lock_wait_timeout来解决。发生死锁后,InnoDB一般自动检查,一个事务释放锁后退,另一个...
2024-01-10mysql入门(五)
SQL编程1).if-elseif-else语句语法:if 条件 then //条件1elseif 条件 then //条件2else //条件3end if;示例演示:create procedure pro_9(in grade int) -- 输入等级begin if grade=1 then select "最强王者" as "排位等级"; elseif grade=2 then select "超凡大师" as "排位等级"; el...
2024-01-10mysql(一)
1 数据类型数据类型默认是有符号的(-128,127),没有符号的范围是(0,255)datetime(日期)float/double/decimal(浮点型)2 字符char(定长,存储速度快,但浪费空间大小)varchar(可变长度,节省空间,但存取速度慢)3表的约束约束的作用:保证数据的完整性和一致性包括:not null非空约束 default默认值约束 ...
2024-01-10mysql模块如何使用
1、在使用之前,创建一个名为demo的数据库,同时定义一个名为demo_tabel的表操作log。C:\Users\James>mysql -u root -pEnter password: **********Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 11Server version: 8.0.16 MySQL Community Server - GPL Copyright (...
2024-01-10mysql备份策略的实现(全量备份+增量备份)
目录设计场景技术点服务器信息准备工作编写全量备份脚本(Mysql-FullyBak.sh)编写增量备份脚本设置定时任务crontab恢复操作最近项目需要对数据库数据进行备份,通过查阅各种资料,设计了一套数据库备份策略,通过调试运行一周后,目前已经处于平稳运行状态。现在将思路分享出来,同时感谢gredn大佬...
2024-01-10mysql通过复制文件实现备份
mysqldump的方法耗时:备份+网络传输+恢复 缺点:时间 直接复制文件的方法耗时:网络传输 缺点:可能造成意外的情况第一种已经实践过了,今天试下第二种。1.tar zxvf bak.tar.gz xxx xxx 把几个文件打包。文件是mysql下的datadir目录下的文件。 除去log文件。其他都需要。2.移到新机器下 tar zxvf bak.tar.gz3.启...
2024-01-10mysql备份与恢复
1、备份命令(用户名:root;密码:123;端口:3306)格式:mysqldump -h主机名 -p端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql例如: mysqldump -h 192.168.1.100 -p 3306 -uroot -p123 --database czz> /tmp/czz0320.sql2、备份压缩(本地可省略host参数,默认端口可省略port参数,以下均省略)导出数据比较大时,可进行压缩格式...
2024-01-10mysql常见的备份方法
1、使用tar包装文件夹备份。数据库可以直接保存data文件夹,但是占用空间大,可以用tar包装压缩保存。[root@localhost ~]# systemctl stop mysqld[root@localhost ~]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/[root@localhost ~]# ls /opt/mysql-2021-10-25.tar.xz[root@localhost ~]# systemctl ...
2024-01-10mysql查看备份文件的方法
说明1、mysqldump导出的SQL脚本是文本文件,/*···*/或--开头的部分表示注释信息。2、使用grep、lesscat等工具查看详细的脚本内容。3、将过滤auth.sql脚本中的数据库操作语句。实例[root@localhost ~]# grep -v "^--" auth.sql | grep -v "^/" | grep -v "^$"CREATE DATABASE /*!32312 IF NOT EXISTS*/ `auth` /*!40100 DEFAULT CHARACT...
2024-01-10Mysql备份还有这么多套路,还不了解下?
逻辑备份和物理备份逻辑备份逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨SQL服务器、需要修改数据等场景。如mysqldump命令就是产生一个逻辑备份工具,使用mysqldump输出的文件包含CREATE TABLE和INSERT语句,能够直接重建表内容和表结构。使...
2024-01-10mysql物理备份如何理解
说明1、物理备份又分为冷备份和热备份两种。2、和逻辑备份相比,它的优点是备份和恢复的速度更快,因为物理备份的原理都是基于文件的cp。实例myisam存储引擎的热备份有很多方法,本质其实就是将要备份的表加读锁,然后再 cp 数据文件到备份目录。使用 mysqlhotcopy 工具// mysqlhotcopy 是 MySQL 的一...
2024-01-10mysql备份脚本
脚本内容:db_user="root"db_passwd="123456"db_name="db_name"time="$(date +"%Y%m%d%H%M%S")"backupdir=/home/wbxt/mysql_backup/usr/local/mysql/bin/mysqldump -u$db_user -p$db_passwd $db_name >>$backupdir/$db_name$time.sqlfind $backupdir -name "$db_name*.sql" -type f...
2024-01-10Mysql备份与恢复(2)逻辑备份
数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小。上一篇针对使用xtrabackup工具进行物理备份和数据恢复做了一个详细讲解,本篇主要谈谈如何使用mysql自带的备份工具mysqldump进行逻辑备份和数据恢复。如果还围观看过上...
2024-01-10mysql备份详细解
Mysqldump导出不含创建数据库的语句mysqldump -uroot -proot wms > 1.sql包含创建数据库的语句mysqldump -uroot -proot --databases wms > 1.sql//导出某张表mysqldump -uroot -proot wms wms_goods > 1.sql//导出binlog的位置并注释,且不锁表 single-transaction的作用是开启事务mysqldump -uroot -proot --master-data=2 --s...
2024-01-10怎样在mysql中建立表
在mysql中建立表的方法:1、打开mysql;2、执行【use database】语句指定数据库;3、执行【create table 表名】命令创建时数据表。1、进入mysql;(推荐教程:mysql数据库学习教程)2、执行use +(数据库名称) 语句,指定数据库;3、创建数据表create table 表名(列,列);...
2024-01-10【mysql】对于这种需求我该如何建mysql的表?
回答不重复的选择的话可以用distinctselect distinct(民族) from `学生`;建议用 GROUP BY 名族字段 来获取唯一。看来数据库还是要好好学习下。它的映射关系:每张表对应实物中的一个对象,可是对象之间彼此关联,所以映射到表结构中,用字段互相关联,正好印证了关联数据库的理解。...
2024-01-10mysql如何编辑建立表格
mysql编辑建立表格的方法:1、打开Navicat for MySQL,找到要创建数据库中数据表2、接着我们在“表”上面单击鼠标右键,然后点击“新建表”3、然后,右边就会出现设计表的界面,这里可以设置表的字段名,类型,长度以及是否为null等4、设计完数据表之后,点击“保存”按钮就OK了。5、我们在其中输入表...
2024-01-10使mysql中的单个表只读
我如何才能使mysql中的单个表对某个用户只读,而该用户仍具有对同一数据库中其他表的写访问权?附加信息我有权访问服务器表是MyISAM服务器版本为5.0.51a-24 + lenny2谢谢!回答:撤销所有先前的特权,然后授予特定的新特权:REVOKE ALL ON db.table FROM user;REVOKE ALL ON db.othertable FROM user;GRANT SELECT ON db.t...
2024-01-10mysql中的表操作
------------恢复内容开始------------创建数据库 create database 数据库名切换数据库 use 数据库名建表: create table 表名 ( 字段名1,类型,约束 字段名2,类型,约束 ... )约束: 1.主键约束 1)直接在建表时字段类型后加 primary key 2)在表最后加 constrain...
2024-01-10mysql表级锁的两种模式
1、表共享读锁,添加共享读锁的表不会阻塞其他session的阅读请求,但会阻塞其他session的写作请求。CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf...
2024-01-10mysql出现表不存在错误如何解决
电脑重装系统后把原来的mysql data复制进去后大部分表是可以访问的,但是有几个表提示表不存在:error: 1146: Table 'your_table' doesn't exist这种情况就是要把原来mysql安装目录data里的 ibdata1 也要拷贝过去INNODB是MYSQL数据库一种流行的数据库引擎,支持事务(行级),在企业级应用上成为可能。ibdata用来储...
2024-01-10mysql如何编辑建立表格[mysql基础教程]
mysql编辑建立表格的方法:1、打开Navicat for MySQL,找到要创建数据库中数据表2、接着我们在“表”上面单击鼠标右键,然后点击“新建表”3、然后,右边就会出现设计表的界面,这里可以设置表的字段名,类型,长度以及是否为null等4、设计完数据表之后,点击“保存”按钮就OK了。5、我们在其中输入表...
2024-01-10如何在mysql表中进行导入
说明1、导入有两种不同的方法,分别是load data infile...和mysqlimport。2、本质是一样的,区别只是在于一个在MySQL 内部执行,另一个在 MySQL 外部执行。使用“load data infile...”命令,具体语法如下mysql> load data [local]infile 'filename' into table tablename [option]实例// 清空表 test MySQL [t2]> truncate table test;...
2024-01-10Mysql中建的表都存在哪里?[mysql基础教程]
1、临时表MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表在MySQL 3.23版本中添加。临时表中的结构和数据都存放在内存中,用的时候直接使用。只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表...
2024-01-10