注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

数据库水平切分架构实践

单Key业务,数据库水平切分架构实践 本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、用户中心 用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为: User(uid,……继续阅读 »

彭东稳 2个月前 (10-10) 617浏览 0评论 1个赞

MySQL索引选择性

什么是索引选择性? 既然索引可以加快查询速度,那么是不是只要是查询语句需要,就建上索引?答案是否定的。因为索引虽然加快了查询速度,但索引也是有代价的:索引文件本身要消耗存储空间,同时索引会加重插入、删除和修改记录时的负担,另外,MySQL在运行时也要消耗资源维护索引,因此索引并不是越多越好。一般两种情况下不建议建索引。 第一种情况是表记录比较少,例如一两千条……继续阅读 »

彭东稳 3个月前 (09-21) 821浏览 0评论 2个赞

针对SSD的MySQL IO优化

现在数据库标配基本都是SSD了,在使用SSD之前,对SSD进行了充分的测试,这其中当然包括最为关键的性能测试部分。下面就跟大家分享一下在SSD性能测试过程中遇到的一个问题和解决问题的思路。 我们的性能测试使用的测试工具是Sysbench,测试场景主要包括5类:全内存非事务更新(nontrx)、全内存事务更新(complex)、非全内存查询(select)、非……继续阅读 »

彭东稳 4个月前 (08-24) 966浏览 0评论 1个赞

MySQL备份工具Xtrabackup锁问题(三)

从XtraBackup的备份过程可以看出,XtraBackup可以实现Innodb表的无锁备份,但是一个数据库中,即使所有的业务表都是innodb表,但是还存在一些MySQL系统库下的user表等,均是myisam表(MySQL 8.0均替换为InnoDB),同时备份过程需要获取Binlog文件名和位置,也要保证表定义文件的一致性,所以从整个实例的角度,即使……继续阅读 »

彭东稳 4个月前 (08-22) 978浏览 0评论 3个赞

MySQL查询执行过程

我们总是希望MySQL能够获得更高的查询性能,最好的办法是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,就会发现:很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。 当向MySQL发送一个请求的时候,MySQL到底做了些什么呢?如下图: 1)客户端/服务端通信协议 MySQL客户端/服务端通信协议是“半……继续阅读 »

彭东稳 5个月前 (07-31) 1299浏览 0评论 4个赞

MySQL支持的SQL模式介绍

SQL模式介绍 MySQL服务器可以在不同的SQL操作模式,并能应用这些模式不同的客户,根据不同的价值SQL模式系统 变量。数据库管理员可以设置全局SQL模式相匹配的网站服务器操作要求,每个应用程序可以设置会话 SQL模式自身的要求。 SQL模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查。这样可以更容易地在不同的环境中使用MySQL,并结……继续阅读 »

彭东稳 5个月前 (07-31) 809浏览 0评论 2个赞

MySQL数据类型与属性

数据类型的作用? 数据类型在数据库中扮演着基础但又非常重要的角色,对数据类型的选择将影响与数据库交互的应用程序的性能。通常来说,如果一个页内可以存放尽可能多的行,那么数据库的性能就越好,因此选择一个正确的数据类型至关重要。另一方面,如果在数据库中创建表时选择了错误的数据类型,那么后期的维护成本可能非常大,用户需要花大量时间来进行ALTER TABLE操作。 ……继续阅读 »

彭东稳 5个月前 (07-10) 1223浏览 0评论 2个赞

MySQL中NULL和空值的区别

学习过关系型数据库的伙伴都知道,NULL是指不确定的值,在数据库中绝对是噩梦的存在;而空值,一般对字符串类型而言,指没有任何值的字符串类型,为字符类型的变量设置为空值:set @vs=”,空值跟无值不同。有人可能会问,无值是什么?无值,是指数据表中没有任何数据。无值和不确定值,单从字面意思上来看,两者之间的定义很清楚,一旦深究,这两者之间的关系,有时令人十分……继续阅读 »

彭东稳 6个月前 (06-26) 1735浏览 0评论 2个赞

MySQL基准测试工具Sysbench 1.0使用

Sysbench介绍 SysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它主要包括以下几种方式的测试: 1、cpu性能 2、磁盘io性能 3、调度程序性能 4、内存分配及传输速度 5、POSIX线程性能 6、数据库性能(OLTP基准测试) Sysbench的oltp主要用于评估测试各种不同系统参数……继续阅读 »

彭东稳 6个月前 (06-12) 3098浏览 0评论 4个赞

MySQL客户端连接管理

MySQL连接管理器线程负责处理服务器侦听的网络接口上的客户端连接请求。连接管理器线程将每个客户端连接与专用于它的线程相关联,以处理该连接的身份验证和请求处理。 连接管理线程在必要时创建一个新线程,但是会先尝试避免这样做,首先查看线程缓存,看它是否包含可用于连接的线程。当连接结束时,如果缓存未满,则其线程返回到线程缓存中,用于下次使用。 在这种连接线​​程模……继续阅读 »

彭东稳 7个月前 (05-23) 1059浏览 0评论 1个赞