本文我们一起来看看,MySQL 在崩溃恢复过程中都干了哪些事情,Redo 日志又是怎么大显身手的。
墨墨导读:数据是以表空间来维护和存放的。在表空间中包含数据,结构,索引等信息,如何有效使用表空间对于MySQL来说非常重要。
本来村民也是打算写一写基础教程的,但是 B 站 UP 主高新强的系列视频 —— MySQL8零基础入门视频教程 十分照顾初学者,正适合新手村。村民看下来之后觉得很不错,视频内容比较全面,分 P 目录详细,示范操作讲解细致,因此就推荐给大家,但村民也会根据自己的实际需求按照视频的分P标题写一点分享,大家在观看视频的时候可以把村民的教程放在一边进行对照。
作为一款开源软件,MySQL除了在源代码方面进行开源,在其他方面也是做得十分到位。例如文档,在线手册,工作日志,bug系统等等。今天在这里为大家介绍一下MySQL的worklog。
我司在某云的MySQL数据库占硬盘空间大于90%,RDS空间总空间为 700G,表A分析之后。某渠道统计的表有5亿,单表空间超过350G。
前面几篇文章,我们介绍了MySQL的基础概念及逻辑架构。相信你现在应该有了自己的一套MySQL环境,接下来我们就可以开始练习MySQL了。本文将从MySQL最基础的语句出发,为你展示出创建及修改不同对象应该使用的标准语句。
MySQL数据备份与恢复 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 #3. 导出表: 将表导入到文本文件中。 一、使用mysqldump实现逻辑备份 #语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql (本地使用可以省略 -h 服务器名) 当用户登陆不需要密码时(密码为空或在配置文件中已
用 show processlist 命令查看 Waiting for table metadata lock
最近,有一位朋友突然微信联系我,说MySQL出现了数据丢失的情况;毫无疑问,对于一个DBA而言,这无疑是最令人紧张的一件事情,没有之一;听到这个消息后,我也就立刻投入到问题排查中。
日常使用 MySQL 的过程中,我们可能会经常使用可视化工具来连接 MySQL ,其中比较常用的就是 Navicat 了。平时也会遇到某些同学问, Navicat 怎么安装,如何使用等问题。本篇文章笔者将结合个人经验,分享下 Navicat 操作 MySQL 简易教程。
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。
一大早收到一封oracle官方发来的邮件,邀请我参加mysql改版的网路研讨会。作为一个后端开发者,想必对mysql是非常是熟悉了。下面来聊一聊mysql8.0的新特性。 临时表的改进 在MySQL5.7中,所有的临时表都被创建在一个叫“ibtmp1”的表空间中。另外,临时表的元数据也将存储在内存中(不再存储在frm文件中)。 在MySQL8.0中,使用临时表存储引擎作为临时表(为优化JOIN、UNION等操作而创建的)存储的默认引擎,从而替换掉了原有的内存存储引擎。 新的引擎使得VARCHAR和VARBI
同事问MySQL数据类型DECIMAL(N,M)中N和M分别表示什么含义,M不用说,显然是小数点后的小数位数,但这个N究竟是小数点之前的最大位数,还是加上小数部分后的最大位数?这个还真记不清了。于是乎,创建测试表验证了一番,结果如下:
在 MySQL 5.6 之前,InnoDB 在索引构建期间会对表进行排它锁定,这意味着其他会话无法读取或修改表中的数据,从而导致长时间阻塞和性能问题。
本页目录 库语句 建库 修改库字符集 指定库排序规则 当前库状态的建表语句 删除库 Navicat编辑数据库时执行的SQL 表语句 建表 添加字段 修改表 修改字段 修改表字符集、排序规则 截断表 删除表 添加索引 一直都是用MySQL可视化工具,几乎没碰过建库、表等语句了。实属遗忘了。趁机补一补吧。 库语句 建库 -- 数据库配置文件default-character-set是utf8_mb3,则会导致创建的表是utf8mb3。我们无法人为控制,只能建库完毕后执行修改库字符集或者建库前修改MySQL配置
最近完成了一套mariadb10.10.x的库到mysql8.0的迁移。给大家分享一下实践过程以及对mysql数据库数据迁移的一些简单思路。
题目感觉质量很高 也很有趣哈 只写了部分web题目 pwn crypto不涉及 不要问我为什么 厂长是我表哥
整型类型中,按照取值范围和存储方式不同,分为tinyint,smallint,mediumint,int和bigInt这五个类型。如果超出类型范围的操作,会发生”Out of range”错误提示。 对于整型数据,MySQL还支持在类型后面的小括号内指定显示宽度,例如int(5)表示当数值宽度小于5位的时候在数字前面填满宽度,如果不显示指定宽度则默认为int(11)。一般配合zerofill使用,顾名思义,zerofill就是用”0”填充的意思,也就是在数字位数不够的空间用“0”填满。
在国产数据库兼容适配过程中,经常遇到因源数据库是MySQL,迁移至其他国产数据库后,因MySQL端兼容模式有非严格模式,导致适配过程过程中需要做调整。那么,MySQL主要的非严格模式小结如下:
在MySQL5.7中,所有的临时表都被创建在一个叫“ibtmp1”的表空间中。另外,临时表的元数据也将存储在内存中(不再存储在frm文件中)。
这篇文章是我正式学习 sql 注入的第一篇文章,下载了 sqli-labs 靶机作为渗透环境,里面的题目很多,有几十题的 sql 注入,跟着网上的 wp 一起做了一题,然后还是学到挺多东西的,这里拿第一关来记录一下
最快的速度把10亿条数据导入到数据库,首先需要和面试官明确一下,10亿条数据什么形式存在哪里,每条数据多大,是否有序导入,是否不能重复,数据库是否是MySQL?
Wordpress这个XSS实际上是很好用的,匿名用户即可发表并触发,这里给出简单的分析与稳定的好触发的POC。
在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句。对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。
用来处理很多数值方面的运算,使用数值函数,可以免去很多繁杂的判断求值的过程,能够大大提高用户的工作效率。
Hash Join作为表连接的基础连接类型,各大关系型数据库(譬如Oracle、sqlserver、Postgres等)很早都支持了Hash Join这种连接类型。作为关系型数据库领域的领袖,Oracle数据库支持三种主流的连接类型:Nested Loop Join、Hash Join 和 Sort Merge Join。而作为最流行的关系型数据库的MySQL 却一直没有支持Hash Join,这点一直为人诟病。千呼万唤始出来,MySQL 8.0.18开始终于支持了Hash Join的连接算法。MySQL 8.0 的所有新特性中,Hash Join 曾经最让我期待的一个新特性。
2、页面渲染的时候,默认出现近七天内要过生日的人。并发邮件提醒(发邮件提醒不在这里完成,是在其他模块,这里只描述如何查询生日的人)。
问题1:char、varchar的区别是什么? varchar是变长而char的长度是固定的。如果你的内容是固定大小的,你会得到更好的性能。
我的halo是用mysql作为数据库搭建的,今天写了一篇netty的入门博客,死活保存失败,然后远程连接到服务器,发现有个字段报错了。为什么会报错呢?
varchar与char是两种不同的数据类型,在MySQL中是有区别的,具体有以下区别:
大家好,我是鱼皮,相信很多面试后端的朋友都被问到过这道题:MySQL 如何性能优化?
我们知道在MySQL中有3种类型可以表示实数,分别是float,double和decimal。关于如何合理得使用这三种类型,网上的答案也层出不穷。但是究竟该选择哪一种类型,好像并没有统一的答案,接下来,将通过一个例子来说明什么情况下选择float,什么情况下选择double,什么情况下选择decimal。相信对这个例子的剖析之后,你就会明白什么时候用什么样的类型
案例:在tb_article文章表中添加一个addtime字段,类型为date(年-月-日)
前段时间,客户反馈 Zabbix 实例的 history_str 表数据量很大,导致磁盘空间使用率较高,想要清理该表,咨询是否有好的建议。想着正好最近学习了相关的知识点,正好可以检验一下学习成果,经过实践的检验,最终考试合格,客户也比较满意,于是便有了此文。
墨墨导读:MySQL临时表在很多场景中都会用到,比如用户自己创建的临时表用于保存临时数据,以及MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等操作。下面将会对MySQL临时表的一些概念、分类和常见问题进行整理。
本文首发:MySQL only_full_group_by 1055报错的三种解决方案,临时关闭有影响吗?
CHAR 和 VARCHAR 类型相似,但在存储的检索时有区别,同时在最大长度定义与尾部空格上是否保留也有区别。
-- 每个表单独文件和单独表空间,而不是放在系统表空间,每个表的文件表空间允许操作系统在表被截断或删除时回收磁盘空间。每表文件表空间还支持动态和压缩行格式以及相关功能
本文示例 SQL 中的表,都来自于官方提供的测试数据库 sakila,下载链接如下:https://downloads.mysql.com/docs/sakila-db.tar.gz
稍不注意,可能你写的查询语句是会导致索引失效,从而走了全表扫描,虽然查询的结果没问题,但是查询的性能大大降低。
SQL SERVER 还有人用,对的,很多人都在用,尤其很多企业,非互联网的企业。那今天就说说 SQL SERVER ALWAYS ON 高可用集群中,为什么不切日志的问题。引起这篇文字的原因是有一个81G 都没有切除日志的 AWO集群。
有时候刚开始设计的时候没考虑到数据归档。数据归档不是简单的导出delete。因为一般我们的数据库都是delete不释放空间。而我们一般数据库遇到空间不足,就不得不面对这个问题。当然也可以做碎片整理的空间回收。我不太喜欢这样,尤其大的表的时候。MySQL一旦超过100G的,在线环境我都不敢去做。Oracle的在线回收我做过20T的表,碎片800G,回收了一次做了55个小时(不停机)
在面对不够优化、或者性能极差的SQL语句时,我们通常的想法是将重构这个SQL语句,让其查询的结果集和原来保持一样,并且希望SQL性能得以提升。而在重构SQL时,一般都有一定方法技巧可供参考,本文将介绍如何通过这些技巧方法来重构SQL。
今天遇到了一个批量插入大量数据任务,然后出于小白本能,直接for-each循环插入不就好了,于是手上开始噼里啪啦一顿操作,写好了从读取excel到插入数据库的工作,于是就美滋滋的开始了自己的测试,试了一把,一次通过perfect,然后后面就悲剧了,后面发现数据量稍微大一点,速度就会很慢很慢。于是掏出自己的制胜法典,后来我在知识和海洋中获取到了两种靠谱的方法。下面一点一点讲。
按照指定字符进行合并或拆分是经常碰到的场景,MySQL在合并的写法上比较简单,但是按指定字符拆分相对比较麻烦一点(也就是要多写一些字符)。本文将举例演示如何进行按照指定字符合并及拆分。
MySQL DECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。
优化数据的存储空间,如果字段长度设置过大,会浪费存储空间,而设置过小可能导致数据截断或者插入失败。
在前面几篇文章中,我们介绍了 MySQL 的高可用架构。当然,传统的高可用架构是不能预防误删数据的,因为主库的一个 drop table 命令,会通过 binlog 传给所有从库和级联从库,进而导致整个集群的实例都会执行这个命令。
领取专属 10元无门槛券
手把手带您无忧上云