【MySQL性能优化】MySQL常见SQL错误用法

MySQL 在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。 但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。阿里云RDS专家服务团队帮助云上客户解决过很多紧急问题。 现将《ApsaraDB专家诊断报告》中出现的部分常见SQL问题总结如下,供大家参考。[......]

阅读全文

MySQL 误操作后如何快速恢复数据

摘要: 利用binlog闪回误操作数据。

 

基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了。假如这还是线上环境核心业务数据,那这事就闹大了。误操作后,能快速回滚数据是非常重要的。[......]

阅读全文

通过MySQL自动同步刷新Redis

在服务端开发过程中,一般会使用MySQL等关系型数据库作为最终的存储引擎,Redis其实也可以作为一种键值对型的数据库,但在一些实际场景 中,特别是关系型结构并不适合使用Redis直接作为数据库。这俩家伙简直可以用“男女搭配,干活不累”来形容,搭配起来使用才能事半功倍。本篇我们就这 两者如何合理搭配以及他们之间数据如何进行同步展开。[......]

阅读全文

MySQL 索引原理及慢查询优化

来源:美团技术博客

链接:http://tech.meituan.com/mysql-index.html

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。[......]

阅读全文

阿里巴巴去Oracle数据迁移同步工具(全量+增量,目标支持MySQL/DRDS)

https://github.com/alibaba/yugong

背景

08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产 品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从 Oracle数据迁移到MySQL上,完成去IOE的第一步.[......]

阅读全文

更新多行数据,然后把更新的结果读出来,这样的 SQL 要怎么写?

考虑这样一种场景,或许还挺常见的:我们需要在关系数据库中更新一行或多行数据的多个字段,更新完了还不算,还得拿到被更新的某一个字段的结果。

再考虑这样一种场景:我们需要在关系数据库中更新一行或多行数据的多个字段,更新完了还不算,还得拿到这批被更新的记录的主键,以便操作其他的有关联的表。[......]

阅读全文

MySQL · 引擎特性 · InnoDB文件系统管理

摘要 综 述 从上层的角度来看,InnoDB层的文件,除了redo日志外,基本上具有相当统一的结构,都是固定block大小,普遍使用的btree结构来管理数 据。只是针对不同的block的应用场景会分配不同的页类型。通常默认情况下,每个block的大小为UNIV_PAGE_SIZE,在不做任何配置时值 为16

[......]

阅读全文

各版本MySQL并行复制的实现及优缺点

摘要 MySQL并行复制已经是老生常谈,笔者从2010年开始就着手处理线上这个问题,刚开始两三年也乐此不疲分享,现在再提这个话题本来是难免“炒冷饭”嫌疑。 最近触发再谈这个话题,是因为有些同学觉得“5.7的并行复制终于彻底解决了复制并发性问题”, 感觉还是有必要分析一下。大家都说没有银弹,但是又期待

[......]

阅读全文

MySQL的大小写敏感性 lower_case_table_names

在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。

奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。[......]

阅读全文

MySQL查询优化-explain

在分析查询性能时,考虑EXPLAIN关键字同样很管用。EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作。[......]

阅读全文