mysql可扩展数据库_五大技巧提高MySQL可扩展性

当网站上部署小型MySQL数据库时,面对少量访客的情况下,快慢的查询都足够快,能够提供足够的性能。因此,没有必要进一步的优化查询。然而,随着大量数据(几十万行量级)的出现,网站大量游客访问时,速度在毫秒级的提升都可以对网站的整体性能有十分显著影响。在处理数据的不断增长时保持良好可用性的能力被称为可扩展性。我们将在下面研究MySQL数据库中最常见的可扩展性的技术。需要注意的是,在文中提到的在占磁盘空间195MB的80000行数据表上执行查询的时间是在普通家庭电脑上完成的。

1. MySQL集群

MySQL集群是为数据库管理系统提供高可用性和可扩展性的技术之一。其主要特点是自动数据库分区(自动分片),每个分区和实时响应能力单独写操作通过使用内存中低延迟的表和索引,在每个分区进行独立写操作并实现实时响应。获取有关如何安装和配置MySQL集群的说明,可以点击这里。

2.主键和索引

主键唯一标识数据库表中的每个记录。这意味着每一行都具有用于主键和并且主键的值不允许为空。由于MySQL能够比较快速的处理整数,所以主键列的类型通常是具有自动递增属性的整数类型。自动递增生成的主键值中,下一行的主键值大于前一行的主键值。

主键影响MySQL数据库性能的关键因素。例如,以主键为限定条件选取一条记录(例如SELECT * FROM消息的WHERE news_id = 40000)只需要0.0953s了,而没有主键限定条件的类似查询需要3.6120s的时间才能返回结果。其他类型的索引,如唯一性和关键字约束,也提供了性能上的改进。

3. MySQL查询缓存

MySQL数据库有内置的查询缓存。查询缓存将SELECT查询语句与被发送到客户端的查询结果存储在一起,从而提高查询性能。从一个测试表取出前25行需要0.0821s,但查询被缓存之后,再次执行时间就会是0.0014s。但是,查询缓存有一定的局限性。虽然比原始查询快,但仍比其高速缓存方式慢,如Memcached的或APC。另外,MySQL查询缓存并不是分布式的,这意味着它不能有效地在分布式系统中使用。

4. MySQL的聚合函数

在MySQL中(COUNT,AVG,SUM)等聚合函数是相当缓慢的,构建可扩展的应用程序时应尽量避免使用聚集函数。它们十分缓慢的原因在于,在where子句中通常会包含一个非索引字段,需要在整个表中进行检查(例如,需要若干对物品的评论,但是需要统计被赞同的评论)。如果不使用这些聚集函数,就应使用某种编程语言(通常是PHP)将结果独立计算出来并存储在数据库中。如果我们使用上面的文章与评论存在一对多关系的例子,文章表应该增加一个附加的字段称为comment_num,这个字段将会存储评论的数量。每当评论获得赞同或删除,该字段都将会被更新。因此,当评论数量需要被显示的时候,只需要在文章表中进行一个查询就足够了。

5. ORDER BY RAND()

在MySQL查询使用ORDER BY RAND()从数据库中取出随机数量的结果是很十分常见的,但这样做效率十分低下且速度缓慢。在测试表中,它需要6.2802s才能获取一行。它之所以如此之慢是因为表首先要进行随机排序,之后才会获取期望数量的结果。这个问题有几个较好的解决方案。其中之一是通过执行以下查询从news表找到最大的ID:SELECT MAX(news_id)。之后,使用PHP中的rand()函数生成随机id。最后,通过主键获取一个随机行。

结论

数据库可扩展性是一个十分复杂的问题,虽然上面技巧是很最常见的,但它们某些需要进一步优化的情况下已经足够。如果您有构建可扩展应用的经验,请在评论中分享您的想法和解决方案。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

fd36bffceef597f61007249bab39600c.png

TechTarget

官方微博

1a369747a5d362acddc09aa36b6fafe0.png

TechTarget中国

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL是一种开源的关系型数据库管理系统,它是最流行的数据库之一。它可以在多种操作系统上运行,包括Windows、Linux和Mac OS等。MySQL具有高性能、可靠性和可扩展性等优点,被广泛应用于Web应用程序、企业级应用程序和移动应用程序等领域。初学者可以通过学习MySQL的基本概念、语法和操作来掌握它的使用方法。 ### 回答2: MySQL 是一种开源的关系型数据库管理系统,由于其开源、跨平台、易用性等特点,成为了当前最流行的数据存储方式之一。初识MySQL需要了解以下几个方面: 一、MySQL 的概述 MySQL 是一个关系型数据库管理系统。它可以进行快速、可靠、高效的大容量数据处理。其主要特点是在进行大量数据操作时速度快、延迟低。 MySQL 具有多线程能力,可以提高数据库的并发处理能力。而且还可以实现多个用户并发访问。 MySQL 采用客户端/服务器模式架构,安装简单,且性能和稳定性都相对较好。 二、 MySQL 的安装与配置 MySQL 可以在各种操作系统上安装,如在 Linux 上使用 apt-get 命令,也可以在 Windows 上使用安装程序。在安装完成后需要进行配置,包括设置 root 用户密码,指定数据存储路径,端口等。 三、MySQL 的基本概念 MySQL 中的一些基本概念包括: 1. 数据库(Database):MySQL 数据库是由一系列表组成的容器,用于存储数据。 2. 表(Table):表是 MySQL 数据库中最小的单元,用于存储数据。 3. 列(Column):表中的每个数据项都是基于列的。 4. 行(Row):每一行代表一条记录,实际上是一个记录的集合。 5. 主键(Primary key):一种特殊的约束,用于保证表中每个记录均有唯一标识,常用于在进行数据更新或删除时进行定位。 四、MySQL 的基本操作 MySQL 的基本操作包括增删改查等,其中最常用的是查询数据。关于查询数据,需要注意使用 SQL 语句,语法应正确且逻辑正确。 五、MySQL 的应用 MySQL 在各种场景下都有广泛的应用,如 Web 应用程序(例如在线商店、博客),移动应用程序,游戏等。由于其量级小、效率高、稳定性好的特点,深受开发者的欢迎。 总体来说,初识 MySQL 需要了解其基本概念、安装配置、基本操作等。作为开源的关系型数据库管理系统,MySQL 在各大领域都有广泛的应用,其影响力不断扩大。 ### 回答3: MySQL是一种关系型数据库管理系统(RDBMS)。它是一种开源软件,是世界上最广泛使用的关系型数据库管理系统之一。MySQL由瑞典MySQL AB公司所开发,现在由Oracle公司维护。 MySQL具有兼容性高、开放的源代码、体积小、性能优越、易于安装和配置等优点。MySQL广泛应用于Web服务器上,它与PHP、Python、Perl等编程语言之间有着良好的兼容性。 MySQL支持多种操作系统,如Linux、Windows、Unix、Free BSD等等。同时也支持多种编程语言,如C、C++、Java、PHP、Python、Perl等等。 在学习MySQL时,你需要掌握数据库创建、数据表创建、数据表间关系的定义和维护、记录插入、查询和修改等技能。MySQL是一个非常灵活、易于学习的数据库管理系统,但它的灵活性也可能会导致一些问题,例如由于外键、约束、索引等原因而引起的性能问题,因此,使用MySQL需要掌握一些基本知识。 此外,在MySQL学习过程中需要注意的是安全性问题。我们可以使用用户名和密码来保护我们的MySQL系统,确保只有授权的用户可以访问数据库。在创建用户时,我们需要为每个用户分配不同的权限,以便他们可以执行他们需要的操作而且不能执行其他命令。 总之,MySQL是一种非常强大、广泛使用的数据库管理系统,它不仅具有广泛的应用层面,而且易于学习和使用。因此,学习MySQL是每个开发者的必备技能之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值