mysql存储引擎和备份

索引

事务

存储引擎

概念:存储引擎,就是一种数据库存储数据的机制,索引的技巧,锁定水平。

存储引擎。存储的方式和存储的格式。

存储引擎也属于mysql当中的组件,实际上操作的,执行的就是数据的读写I/O。

mysql的存储引擎的分类:

mysql5.5之后默认开始使用innodb,事务型速记存储引擎。支持ACID,支持行锁定。

MYisam:5.5之前默认的存储引擎,插入的速度和查询速度很快,但是不支持事务。

Memory:内存型存储引擎,数据在写时都保存在内存当中,一旦重启所有数据全部消失。

CSV:逗号分割数据的存储引擎,数据文件.csv文件保存的,execl.保存的文件就是一个普通的文本文件。不支持索引。

innodb存储引擎:

1、读写阻塞(锁表)和事务的隔离级别

2、能够高效的缓存数据支持多种类的索引

3、表的索引的类型默认BTREE

4、支持外键,支持全文索引

5、对硬件的资源要求比较高

6、行级锁定,会把行锁住,禁止操作

模糊查询:

like进行查询时,会进行全表扫描,在扫描的过程中会锁定整个表

没有创建索引的列,进行查询时,也会锁定整个表。

使用的是索引列,锁定条件的行,行锁定。

innoDB行锁和索引的关系

行锁是通过索引来实现的

如果没有索引,innodb会使用默认的隐藏索引来对记录进行加锁。

加了索引就是锁行

不加索引就是锁表

mysql默认就是自动提交写入。

oracle提交才能写入

死锁:事务相互等待对方的资源,最后形成一个环路状态造成的。

发生了死锁,数据会自动选择一个事务作为受害者,回滚事务可以解除死锁。

for update 排他锁,当一个事务的操作未完成时,其他事务可以读取但是不能写入。写锁。

如何避免死锁的情况出现:

1、以固定的顺序访问表和行

2、大事务尽量拆分成小的事务

3、为表添加合理的索引

mysql的备份、恢复和日志管理(配置文件当中的设置)

备份的目的是什么:

备灾。

在生产环境中,数据的安全性非常重要。

造成数据丢失的原因:

1、程序出错

2、人为的问题

3、磁盘故障

备份的分类:

物理备份:对磁盘或者文件直接进行备份。

冷备分:脱机备份,先把指定的程序关闭,然后对资料进行备份

热备份:联机备份,不用关闭程序就可以对资料进行备份


在命令行操作:
mysqldump -u root -p --databases 库名 > /opt/文件名.sql
#备份单个库
mysqldump -u root -p --databases 库1 库2 > /opt/文件名2.sql
#多个备份
mysqldump -u root -p --all-databases > /opt/文件名3.sql
#备份所有库

逻辑备份:

根据数据库文件当中保存的sql语句,表结构,等等,以特定的格式和命令对文件的内容进行还原。

热备份的一种。

只能对表,库没了没有办法恢复。

主从复制可以恢复。

物理备份 全量备份:

把数据库的内容整一个一次性的

数据恢复


只恢复单个表或者多个表:
准备另外一张表插入数据
恢复一张表:
mysqldump -u root -p test1 info1 > opt/test1_info1.sqlmsql -u root -p -e 'drop table test1.info1;'
#指定库删除表mysql -u root -p test1 < /opt/test1_info1.sql
#指定库名恢复
#刷新一下查看一下恢复多个表:
mysqldump -u root -p test1 info1 info2 > /opt/test1_info1-2.sqlmsql -u root -p -e 'drop table test1.info1;'msql -u root -p -e 'drop table test1.info2;'mysql -u root -p kgc < /opt/test1_info1-2.sql
#指定库名恢复
#刷新一下查看一下MySQL1全部数据库的逻辑备份文件恢复到MySQL2。scp root@20.0.0.60:/opt/all_database.sql /opt/mysql -u root -p < all_database.sql
#用sql语句的方式热备份直接转换。

mysql自带的备份命令。可以备份库,也可以备份库里面的表

mysqldump

增量备份:

1

2

3

4

开启二进制日志的功能:

binlog 逻辑备份,会生成一个文件,这个里面包含了sql语句,要使用特定的方式和语句才能恢复。

binlog format=MXED

记录二进制的文件·格式

STATEMENT基于sql语句:只是记录用户操作的sql语句,高并发的情况之下,记录操作的sql语句的顺序可能会出错。导入数据时,就会有丢失或者误差。效率高。

ROW 基于行,记录每一行的数据,准确,高并发也不会出错,但是恢复效率底

MIXED 混合模式,正常情况下使用statement,高并发使用row,只能判断

表数据设置多一点select * from info1;
#查看数据是否写入cd /usr/local/mysql/data/
#会生成了两个文件
mysql -bin.index
mysql-bin.000001
表内写入信息后再查看日志文件 mysql-bin.000001
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001
#查看新插入表的日志mysqladmin -u root -p flush-logs
#刷新日志.
#此时data目录下会生成一个新的日志文件mysql-bin.000002mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002
#刷新之后更新的内容会更新在2里面这就是断点如何恢复:
mysqlbinlog --no-defaults mysql-bin00000.1 | mysql -u root -p
#增量备份,恢复之前表内插入的数据。这个叫断点恢复。此时再对表插入信息。此时新插入的数据再000002里面。只要没有刷新日志就不会出现断点。会先插入再删除。
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002如果需要备份新的数据之前需要再刷新一次。
mysqladmin -u root -p flush-logs
#刷新日志.重新在表内插入数据
此时断点之后数据都在新生成的000003里面
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002mysqladmin -u root -p flush-logs
#刷新日志断点再删除表内数据,这时候删除的操作会保存到000004里面mysqlbinlog --no-defaults --base64-out=decode-rows -v mysql-bin.000003

general_log=ON

general_log_file=/usr/local/mysql/data/mysql_general.log

查询日志的保存位置

log-error=/usr/local/mysql/data/mysql_error.log

错误的保存位置,错误日志默认是开启的

slow_query_log=ON

开启慢查询日志

slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.lgo

设定慢查询日志的位置

long_query_time=5

默认的慢查询时间是10秒。超过5s的记录都会保存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/48683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试2024年C卷D卷 - 构成指定长度字符串的个数/字符串拼接(Java)

华为OD机试&#xff08;C卷D卷&#xff09;2024真题目录 题目描述&#xff1a;构成指定长度字符串的个数 (本题分值200) 给定 M&#xff08;0 < M ≤ 30&#xff09;个字符&#xff08;a-z&#xff09;&#xff0c;从中取出任意字符&#xff08;每个字符只能用一次&#x…

科普文:银行信贷系统概叙

信贷业务流程 资金需求者提交申请&#xff1a;资金需求者通过不同渠道&#xff08;如APP、网站、门店等&#xff09;提交贷款申请。 系统交互完成审批&#xff1a;系统通过自动化和人工相结合的方式&#xff0c;对贷款申请进行初步筛选和审批。 系统交互完成策略判断&#xf…

rsync文件远程同步

目录 一、什么是rsync远程同步 二、实操rsync远程文件同步 1、配置rsync同步源 2、客户端部署 3、增量备份​编辑 4、删除文件 5、如何实现免交互登录 6、crontab rsync 实现定时同步 7、使用ssh实现rsync数据同步【☆】 如何使用ssh免交互实现数据同步&#xff1f;…

Golang | Leetcode Golang题解之第260题只出现一次的数字III

题目&#xff1a; 题解&#xff1a; func singleNumber(nums []int) []int {xorSum : 0for _, num : range nums {xorSum ^ num}lsb : xorSum & -xorSumtype1, type2 : 0, 0for _, num : range nums {if num&lsb > 0 {type1 ^ num} else {type2 ^ num}}return []in…

【深度学习入门篇 ⑨】循环神经网络实战

【&#x1f34a;易编橙&#xff1a;一个帮助编程小伙伴少走弯路的终身成长社群&#x1f34a;】 大家好&#xff0c;我是小森( &#xfe61;ˆoˆ&#xfe61; ) &#xff01; 易编橙终身成长社群创始团队嘉宾&#xff0c;橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…

【一刷《剑指Offer》】面试题 48:不能被继承的类

《剑指Offer》对应内容&#xff1a; 可参考&#xff1a; 【C】继承 -- 详解_c,两个派生类继承一个基类,声明对象的时候用基类的对象。-CSDN博客

每日OJ_牛客_WY33 计算糖果

目录 牛客_WY33 计算糖果 解析代码 牛客_WY33 计算糖果 计算糖果_牛客题霸_牛客网 解析代码 A - B aB - C bA B cB C d 这道题目的实质是&#xff1a;判断三元一次方程组是否有解及求解&#xff0c; 13可以得到A(ac)/2&#xff1b;4-2可以得到C(d-b)/2; 24可以得到B2…

WebGSI地图切片|栅格地图切片原理|地图矢量切片原理

介绍 图栅格切片是WebGIS中使用的一种新技术&#xff0c;通过地图栅格切片可以有效缩短服务器的地图生成时间和地图传输时间&#xff0c;提高系统的响应速度。 地图切片是在多个比例尺下配置地图&#xff0c;预先将每个比例尺下的地图绘制成小图片&#xff0c;保存到服务器上一…

Python 爬虫实战----3(实力展现)

实战&#xff1a;获取豆瓣电影top250的电影名字 1.获取url&#xff1a;打开网站按发f12&#xff0c;点击网络&#xff0c;刷新找到第一个截取url和User-Agent。 2.请求爬取数据 mport requests import fake_useragent from lxml import etree import re #UA head {"User…

Android AutoSize屏幕适配:适配不同屏幕大小的尺寸,让我们无需去建立多个尺寸资源文件

目录 AutoSize是什么 AutoSize如何使用 一、AndroidautoSize是什么 在开发产品的时候&#xff0c;我们会遇到各种各样尺寸的屏幕&#xff0c;如果只使用一种尺寸去定义控件、文字的大小&#xff0c;那么到时候改起来就头皮发麻。以前使用dime的各种类库&#xff0c;文件太多…

Spark调优特殊case- Task倾斜

首先我们观察下上面的stage5, Task MaxTime2.4Min, 但是stage5的整体耗时竟然可以达到55Min, 其实分区1000&#xff0c; 300个executor&#xff0c; 按照最大的TaskTime2.4Min来估算所有Task运行完成时间, 那么时间应该是- 2.4Min * 3 2.4Min 9.6Min 也就是最慢也就跑10分钟就…

C++ | Leetcode C++题解之第274题H指数

题目&#xff1a; 题解&#xff1a; class Solution { public:int hIndex(vector<int>& citations) {int left0,rightcitations.size();int mid0,cnt0;while(left<right){// 1 防止死循环mid(leftright1)>>1;cnt0;for(int i0;i<citations.size();i){if(…

Kubernetes集群安装步骤

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、安装要求 在开始之前&#xff0c;部署Kubernetes集群集群需要满足以下几个条件&#xff1a; 一台多多台机器&#xff0c;操作系统CentOS.x-86_x…

数据结构——栈(顺序结构)

一、栈的定义 栈是一种数据结构&#xff0c;它是一种只能在一端进行插入和删除操作的特殊线性表。这一端被称为栈顶&#xff0c;另一端被称为栈底。栈按照后进先出&#xff08;LIFO&#xff09;的原则进行操作&#xff08;类似与手枪装弹后射出子弹的顺序&#xff09;。在计算…

服务攻防-应用协议cve

Cve-2015-3306 背景&#xff1a; ProFTPD 1.3.5中的mod_copy模块允许远程攻击者通过站点cpfr和site cpto命令读取和写入任意文件。 任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制到选定的目标。 复制命令使用ProFTPD服务的权限执行&#xff0c;…

配置web服务器

当访问网站www.haha.com时显示&#xff1a;haha&#xff1b;当访问网站www.xixi.com/secret/显示&#xff1a;this is secret 第一步&#xff0c;配置一个新的IP 确认后 esc返回 第二步&#xff1a;重启ens160 第三步&#xff1a;创建目录&#xff0c;并且在文件内写入内容 第…

【b站/哔哩哔哩/bilibili】视频缓冲慢的解决方法

最近我的b站视频缓冲很慢&#xff0c;加载速度只有100多kb/s。这导致视频加载非常慢&#xff0c;看几秒就卡很久&#xff0c;有时候甚至黑屏。 据某些b站网友研究&#xff0c;b站存在如下问题&#xff1a;相关动态 “2.更改网络协议。是的&#xff0c;你没看错&#xff0c;转了…

Unity UGUI 之 Toggle

​本文仅作学习笔记与交流&#xff0c;不作任何商业用途本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正​ 1.什么是Toggle&#xff1f; Unity - Manual: Toggle 带复选框的开关&#xff0c;可…

【Unity】Android Failed to transform Error while dexing.

文章目录 一、背景二、问题描述三、原因和解决方法 一、背景 1、Unity 2021.3.33f1 2、Firebase 11.7.0 3、升级至API-34 二、问题描述 错误信息 Failed to transform play-services-measurement-api-21.5.0.aar (com.google.android.gms:play-services-measurement-api:21.5.…

算法力扣刷题记录 五十六【501.二叉搜索树中的众数】

前言 二叉搜索树操作&#xff0c;继续。 记录 五十六【501.二叉搜索树中的众数】 一、题目阅读 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;…