最 近线上 MySQL 接连发生了几起数据异常,都是在凌晨爆发,由于业务场景属于典型的数据仓库型应用,白天压力较小无法复现。甚至有些异常还比较诡异,最后 root cause 分析颇费周折。那实际业务当中咱们如何能快速的定位线上 MySQL 问题,修复异常呢?下文我会根据两个实际 case,分享下相关的经验与方法。
[......]
标签归档:MySQL


十招搞定 MySQL 大规模数据库的性能和伸缩性优化
在需要支持移动/平板电脑应用及普通桌面浏览器访问的时代,网站的普及率和有效性很大程度上取决于其可用性和性能。一个访问缓慢的网站会使得访问者或潜在的客户流失,并导致商业的失败。一个访问速度相当快的网站将会决定访客是否会使用网站提供的产品或服务。
拥有大规模数据库的网站始终需要适当的关注、配置、优化、调整和维护,以确保网站的快速加载。这篇文章将讨论如何优化有海量数据的 MySQL 数据库。
[......]

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

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


MySQL 的 20+ 条最佳实践
Top 20+ MySQL Best Practices
链接:
https://code.tutsplus.com/tutorials/top-20-mysql-best-practices--net-7855
译者:Tocy, 边城, Robbie_Zhu, snake_007, 爱不爱吃鱼, 达尔文, polarw
[......]

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

技术揭秘丨存储总量达20T的MySQL实例,如何完成迁移?


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


双机高可用、负载均衡、MySQL (读写分离、主从自动切换)架构设计
干货!MySQL 资源大全
英文:shlomi-noach
译者:伯乐在线 - 夏了夏天
链接:http://blog.jobbole.com/100516/
shlomi-noach 发起维护的 MySQL 资源列表,内容覆盖:分析工具、备份、性能测试、配置、部署、GUI 等。
[......]

MYSQL企业常用架构与调优经验分享

MySQL 语句大全:创建、授权、查询、修改等

阿里巴巴去Oracle数据迁移同步工具(全量+增量,目标支持MySQL/DRDS)
https://github.com/alibaba/yugong
背景
08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产 品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从 Oracle数据迁移到MySQL上,完成去IOE的第一步.[......]
更新多行数据,然后把更新的结果读出来,这样的 SQL 要怎么写?
考虑这样一种场景,或许还挺常见的:我们需要在关系数据库中更新一行或多行数据的多个字段,更新完了还不算,还得拿到被更新的某一个字段的结果。
再考虑这样一种场景:我们需要在关系数据库中更新一行或多行数据的多个字段,更新完了还不算,还得拿到这批被更新的记录的主键,以便操作其他的有关联的表。[......]

MySQL · 引擎特性 · InnoDB文件系统管理
[......]
mysql-inception
一个集审核、执行、备份及生成回滚语句于一身的MySQL自动化运维工具[......]
各版本MySQL并行复制的实现及优缺点
[......]

一次非常有意思的sql优化经历
MySQL的大小写敏感性 lower_case_table_names
在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。
奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。[......]
mysql索引
查看数据大小
SELECT CONCAT(ROUND(SUM(data_length)/(1024*1024), 2), ' M') AS 'Total Data Size'
FROM information_schema.TABLES WHERE table_schema = 'testus';
查看索引大小[......]