四 05 MySQL锁问题最佳实践 发布时间:2016 年 4 月 5 日 发布者: OurMySQL 最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手。下面将从整个数据库设计,开发,运维阶段介绍如何避免锁问题的发生,提供一些最佳实践供RDS的用户参考。 继续阅读全文 →
四 05 MySQL防范SQL注入风险 发布时间:2016 年 4 月 5 日 发布者: OurMySQL 互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低、成本低、收益大,颇受各层次的黑客们所青睐。 一般来说,SQL注入的手法是利用各种机会将恶意SQL代码添加到程序参数中,并最终被服务器端执行,造成不良后果。 继续阅读全文 →
二 10 MySQL drop database恢复(恢复方法同样适用MySQL drop table,delete,truncate table) 发布时间:2016 年 2 月 10 日 发布者: OurMySQL 昨天晚上接到一个网络服务请求,由于不小心点击了自己产品软件上面的清空数据功能(这个工具确实需要小心,在Oracle恢复案例中,也有xx企业erp该功能导致数据被删除请求恢复),导致MySQL数据库被直接drop database掉了,之前没有做任何备份,只是发生故障之后,他们立即封存现场,备份出来了ibdata1文件。接到请求之后,通过让其把ibdata1文件发给过来,通过MySQL recovery工具进行分析恢复,经过6个小时的处理,基本上实现核心数据0丢失. 继续阅读全文 →
二 06 RDS MySQL参数调优最佳实践 发布时间:2016 年 2 月 6 日 发布者: OurMySQL 很多时候,RDS用户经常会问如何调优RDS MySQL的参数,为了回答这个问题,写一篇blog来进行解释:1、哪一些参数不能修改,那一些参数可以修改;2、这些提供修改的参数是不是已经是最佳设置,如何才能利用好这些参数。 继续阅读全文 →
十一 28 MySQL源码:索引相关的数据结构(后篇) 发布时间:2014 年 11 月 28 日 发布者: OurMySQL 本文不打算从High Level来介绍MySQL索引及其使用,相反是从MySQL源码对应的数据结构开始介绍。如果你了解MySQL索引的基本原理,还打算继续从源码的角度解决一些索引使用的问题,那么你适合参考本文,否则,打住,真的很枯燥。 继续阅读全文 →
十一 28 MySQL源码:索引相关的数据结构(前篇) 发布时间:2014 年 11 月 28 日 发布者: OurMySQL 本文将尝试介绍MySQL索引存储相关的数据结构。程序=数据结构+算法,了解数据结构,然后就可以进一步了解MySQL源码中如何使用索引,如何选择自己的执行计划。 继续阅读全文 →
九 10 MySQL源码:索引相关的数据结构(后篇) 发布时间:2013 年 9 月 10 日 发布者: OurMySQL 本文介绍MySQL如何发现WHERE条件中的等值表达式,并通过分析这些等值表达式,找到可以使用的索引。在这个过程中,MySQL将递归的访问所有WHERE条件”谓词”,并将等值表达式都存储到KEY_FIELD对象的数组中。 然后遍历该KEY_FIELD数组,并同时对比所有索引列,找到哪些字段是在索引列中出现,这些字段则可能可以使用索引,MySQL将所有这些字段都存储在对象KEYUSE数组中。 最后,对KEYUSE进行处理,包括排序、删除无法使用的索引列。这时KEYUSE数组就是所有可以使用REF的索引列了。 继续阅读全文 →
九 10 MySQL源码:索引相关的数据结构(前篇) 发布时间:2013 年 9 月 10 日 发布者: OurMySQL 本文将尝试介绍MySQL索引存储相关的数据结构。程序=数据结构+算法,了解数据结构,然后就可以进一步了解MySQL源码中如何使用索引,如何选择自己的执行计划。 继续阅读全文 →
九 06 MariaDB线程池源码分析 发布时间:2013 年 9 月 6 日 发布者: OurMySQL MariaDB在5.5引入了一个动态的线程池方案,可以根据当前请求的并发情况自动增加或减少线程数,还好MariaDB完全开源,本文结合MariaDB的代码来介绍下thread pool的实现。这里使用的MariaDB 10.0的代码树。 继续阅读全文 →