20

关于MySQL线程池资料整理–Percona Server

​MySQL执行statement使用一个连接一个thread的方式,当连接数增加到某一个点,那么性能将会开始下降.

这个特性的作用就是无论有多少连接,thread pool都讲保证性能处于最好水平.

thread pool的原理主要是减少线程,减少上下文交换和锁资源争抢,针对OLTP环境特别有效.

为可以开启thread pool功能,请将thread_handling=pool-of-threads.

percona server实现的thread pool是在server级别,和oracle mysql的不一样(插件形式),另外一个不同点在于,percona的thread pool不尝试最小化并发事物数量.

继续阅读全文

05

MySQL锁问题最佳实践

最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手。下面将从整个数据库设计,开发,运维阶段介绍如何避免锁问题的发生,提供一些最佳实践供RDS的用户参考。

继续阅读全文

05

MySQL防范SQL注入风险

互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低、成本低、收益大,颇受各层次的黑客们所青睐。

一般来说,SQL注入的手法是利用各种机会将恶意SQL代码添加到程序参数中,并最终被服务器端执行,造成不良后果。

继续阅读全文

02

MySQL relay_log_purge=0 时的风险

有时候,我们希望将 MySQL 的 relay log 多保留一段时间,比如用于高可用切换后的数据补齐,于是就会设置 relay_log_purge=0,禁止 SQL 线程在执行完一个 relay log 后自动将其删除。但是在官方文档关于这个设置有这么一句话: Disabling purging of relay logs when using the –relay-log-recovery option risks data consistency and is therefore not crash-safe. 究竟是什么样的风险呢?

继续阅读全文