首页
学习
活动
专区
工具
TVP
发布

性能与架构

专栏成员
597
文章
1191997
阅读量
116
订阅数
删库不必跑路!详解 MySQL 数据恢复
日常工作中,总会有因手抖、写错条件、写错表名、错连生产库造成的误删库表和数据的事情发生。但是,如果每次删库都跑路的话,怕是再也不好找工作了吧!所以,删库跑路不是上上策。
dys
2021-06-24
1.3K0
MySQL 8 查询优化新工具 Explain Analyze
Explain 是我们常用的查询分析工具,可以对查询语句的执行方式进行评估,给出很多有用的线索。
dys
2020-07-07
1.3K0
MySQL:如何查询出每个 Group 的 Top n 条记录?
可以看到,根据年、月、订单金额排序了,还多了一列order_rank,显示出了本条记录在本月的订单金额排名情况。
dys
2020-02-12
3.8K0
MySQL8 的 Hash join 算法
以前 MySQL 的 join 算法只有 nested loop 这一种,在 MySQL8 中推出了一种新的算法 hash join,比 nested loop 更加高效。
dys
2019-11-28
9750
MySQL 自增ID的几个小问题
例如当前表中有ID为1,2,3三条记录,把3删除,重启MySQL,新插入记录的ID从哪儿开始?
dys
2019-11-19
7.9K0
MySQL order by 是怎么工作的?
这个排序过程叫做全字段排序,因为需要返回的字段都放入了 sort_buffer 参与排序过程。
dys
2019-05-13
1.7K0
MySQL中一条SQL语句是如何执行的?
client 首先要与 MySQL 建立连接,这就需要一个连接器,负责与 client 建立连接、权限验证、管理连接。
dys
2018-12-29
1.5K0
Mysql 8 重要新特性 - CTE 通用表表达式
前言 Mysql 8 正式发布了,新增了很多优秀特性,之后我会挑些重点来分享。 下面和大家一起熟悉下 CTE(Common Table Expressions)通用表表达式。 CTE 是什么 派生表大家都比较熟悉了,CTE 就是针对派生表来的,可以说是增强的派生表,或者说时派生表的替换。 派生表是 FROM 中的子查询,例如: SELECT ... FROM (subquery) AS derived, t1 ... CTE 就像派生表,但它的声明是在查询块儿之前,而不是在 FROM 中,例如: WITH
dys
2018-06-04
3.4K0
Mysql 索引你了解多少?
前言 Mysql 的索引是我们常用的,但实际了解多少呢?下面通过几个案例小问题来测验下,后面会有答案及相关解释 测试问题 问题1 下面的索引适合这个查询吗? CREATE INDEX tbl_idx ON tbl (date_column) SELECT COUNT(*) FROM tbl WHERE EXTRACT(YEAR FROM date_column) = 2017 选项: A 很适合 B 不适合 问题2 下面的索引适合这个查询吗? CREATE INDEX tbl_idx ON tbl
dys
2018-04-04
9310
优化Mysql:3个简单的调整
前言 调整下面3项参数配置可以起到很好的优化效果,简单实用。 1. 使用 InnoDB 存储引擎 如果你还在使用 MyISAM 存储引擎,强烈建议改为 InnoDB,InnoDB 的优越性有很多,举个简单的例子: MyISAM:只在内存中存放索引 InnoDB:在内存中存索引和数据 修改的方法: ALTER TABLE table_name ENGINE=InnoDB; 2. 让 InnoDB 使用全部内存 innodb_buffer_pool_size参数指定了 InnoDB 可以使用的内存总量。 建议设
dys
2018-04-04
8440
Redis Cluster 迁移案例
背景简介 Grab 是东南亚的打车巨头,app 下载量已有 5500 万,司机有 120 万 app 与 server 通信时需要使用一个认证 token,Grab 使用 Redis 来缓存 toke
dys
2018-04-04
1.5K0
Mysql 高可用 InnoDB Cluster 多节点搭建过程
1. 简介 InnoDB Cluster 的搭建可以分为两种情况: (1)实验环境 使用 sandbox 沙箱模拟数据库实例,这个非常简单,可以参考之前的一篇文章《体验 MySQL InnoDB Cluster》,也可以看 mysql 的官方文档,其中就是使用 sandbox 来介绍搭建过程的 (2)真实多服务器节点环境 真实环境下的搭建要更复杂一些,过程中我也遇到了一些问题,这方面的资料还很少,花费了不少时间才搭建成功 下面总结了多节点 InnoDB Cluster 搭建的详细过程,供有需要的朋友参考 2
dys
2018-04-04
2.4K0
一个写SQL语句的便利工具
前言 我们平时会经常写SQL语句,这个过程我有一个痛点 我一直使用的数据库工具是 Sequel Pro,在写SQL时有点不方便,主要是对表明和字段名的自动提示支持得不好 有自动提示,但很迟钝 写SQL
dys
2018-04-04
2.3K0
Mysql 8.0 更好的支持了 UUID
背景 UUID 是大家常用的,是一个 128bit 的字符串,例如: 12345678-1234-5678-1234-567812345678 UUID 是有版本的,不同版本有不同的底层结构,RFC4122 定义了5个版本,MySQL 实现的是版本1,由 时间戳、UUID版本、MAC地址构成 好处 MySQL 中使用 UUID 是对 AUTO_INCREMENT PRIMARY KEY的一个很好的替代,有如下好处: keys 在不同 表、库、服务器 中都是唯一的 安全性更好,很难猜 可以离线生成 可以简化数
dys
2018-04-04
5K0
Mysql 高一致性复制结构
简介 MySQL 5.7.17 中发布了一个重要的功能:Group Replication 组复制 Group Replication 是干什么的? 可以简单理解为:通过 Group Replicat
dys
2018-04-04
8760
[安全] mysqldump 备份的后门
1. 简介 mysqldump 是备份 MySQL 数据库的常用工具,其中会包含 创建表、删除表、插入数据 这些数据库操作的语句 而黑客可能会利用 mysqldump 来黑掉你的系统,在 dump 文件被导入时就会执行黑客设置好的 SQL 语句或者 shell 命令 2. 实验 场景假设 1)黑客已经获得了应用的访问权,可以执行任意的 SQL,例如你使用了 Wordpress 等开源系统,就很有可能被黑客搞定 2)黑客具有 CREATE TABLE 权限,这也不难,很多开源系统的安装教程中都不会注意这点,可
dys
2018-04-04
1.5K0
Mysql 8.0 新增特性
1. 数据字典 新增了事务型的数据字典,用来存储数据库对象信息 之前,字典数据是存储在元数据文件和非事务型表中的 2. 账号权限管理 添加了对 “角色” 的支持,角色会对应一套权限,角色可以被添加、删除,角色上的权限也可以进行增删 可以对用户账号添加和删除角色 3. InnoDB 提升 完善了对自增计数器(auto-increment counter)的管理,例如设置了计数器的初始值,在服务器重启后也不会受到影响;执行 ROLLBACK 也不会导致计数器的值被重用 InnoDB memcached 插件支持
dys
2018-04-04
1.7K0
Uber 的 Docker Mysql 应用
背景介绍 Uber的MySQL集群规模很大,超过1000个集群,共有4000多个数据库服务器。 问题 起初是使用Puppet管理,写了很多脚本,再加上一些人工操作,在集群数量比较小时,这个管理方法比较实用,但现在这个规范已经完全不适用了,所以需要其他的管理方案。 对于MySQL集群的管理,有几点基本的需求: 可以在每个主机上运行多个数据库 全自动化 有一个统一入口来管理所有数据中心中的所有集群 解决方案 最后决定基于Docker设计一套解决方案,命名为 Schemadock。 在Docker容器中运行MyS
dys
2018-04-04
1.2K0
MySQL 8.0 将结束 MyISAM 引擎
MyISAM 存储引擎已经有了20年的历史,在1995年时,MyISAM 是 MySQL 唯一的存储引擎,服务了20多年,即将退居二线 MySQL 5.7 中仍然使用了 MyISAM 作为系统表的存储引擎,MySQL 8.0 引入了新的数据字典,系统表便不再使用 MyISAM,而且 8.0 中 MyISAM 被极大的限制了使用范围,例如不允许拷贝 MyISAM 表到正在运行的 MySQL server 中 8.0 中仅支持创建一个 engine=MyISAM 的表,然后像以前一样工作 MyISAM 的
dys
2018-04-04
2.2K0
InnoDB 日志文件大小设为多大合适?
InnoDB 日志文件的作用 Innodb 数据表崩溃后,再次启动时,MySQL会扫描日志文件,看哪些记录不在表空间中,对其进行 redo 操作,从而完成数据恢复 Innodb 日志文件的大小可以通过参数 innodb_log_file_size 来设置 这个值如果太小,会增加checkpoint,导致刷新磁盘的次数增加,影响数据库性能 如果太大,会让数据恢复过程变慢,便增加了数据库不可用的时间 所以,设置一个合适的日志大小是比较重要的 如何计算出合适的日志大小 思路 设为多大是合适,没有明确的定义,但有一
dys
2018-04-04
2.7K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档