SQL Server数据库对上亿表的操作经验总结_MySQL
对上亿的表进行排序或者上亿的表之间进行join,会导致系统失去响应。
◆1.我确实做了一个很大的查询,涉及的数据表有两亿条记录,而且有一个group by操作,造成CPU、内存和磁盘开销均很大。后来和微软的人重新实验了一下,我的查询确实会造成系统反应变慢。后来我们也实验了一下,在这个2亿的表上统计一下行数,即select count(*) from table1,用了1分钟,内存涨了5G左右,磁盘子系统负荷很大,CPU也突然提高。这说明这种上亿的表的操作会非常严重的降低效率。
◆2.整个服务器的磁盘分配是这样的,网站访问的数据库库位于磁盘阵列中,而我们的统计临时库位于D盘中,C和D好像是一个磁盘组,也就相当于是在C盘。我们的数据库的大量磁盘I/O会导致系统的反应变慢。因此当我的查询很大的时候,就会使服务器整个系统变慢。
◆3.数据库的数据文件的自增长方式为每次1024k,数据文件的空间已经接近用光,而要发生增长,而增长空间要求应该比较大,所以就会不停的申请增长,造成磁盘开销较大。
◆4.操作中涉及到delete操作,会形成大量的日志,而上周扩容后,发现日志文件比以前缩小了,估计是重建了,昨天的操作会导致日志文件也要不断增长,也会造成磁盘的负荷加大。
解决办法:
针对一:
避免大表操作,所有的操作均可以按省或者时间分开,这样无论从时间或者地域维度,基本上可以将大表拆成30张以上的小表操作,甚至更多。然后再对结果进行合并,应该可以避免上述问题。
针对二:
无解决方案,只是建议将我们的数据库也单独分到一组磁盘上去,不要跟系统竞争。
针对三:
及时删除无用的临时数据,保障数据库空间,同时也可以做上空间监控,一旦数据文件空间发生增长时,给DBA一个预警邮件,我们收到邮件后可以立即做相应处理。
针对四:
日志文件目前已经涨得较大,我们执行一下截断日志的动作,将日志文件的空间使用保持在一个较低水平。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

MySQL是一种常见的关系型数据库,是许多网站和应用程序的核心组件。随着数据量越来越大,如何优化MySQL的性能就变得尤为重要。其中一个关键领域是数据表的压缩,在本文中我们将介绍MySQL中的数据表压缩技术。压缩表和非压缩表MySQL中有两种类型的数据表:压缩表和非压缩表。非压缩表是MySQL默认的表类型,它使用固定长度的行格式,对数据进行存储。这意味着数据

MySQL是一款非常流行的开源关系型数据库管理系统,它支持完整的DDL(数据定义语言)操作。DDL是用于定义和管理数据库中各种数据对象的语言,包括数据表、视图和索引等。对于数据库管理员和开发人员而言,熟练掌握MySQL中数据表DDL操作技术非常重要。本文将详细介绍MySQL中数据表DDL操作的技术和方法,并提供实际操作示例。一、创建数据表创建数据表是DDL中

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:“SHOW TABLES;”;2、修改表名,代码为:“ALTER TABLE 旧表名 RENAME [TO] 新表名;”。3、检查表名是否修改成功,代码为:“SHOW TABLES;”

MySQL是一种开源关系型数据库管理系统,它的基本功能在数据库设计、数据存储和管理方面非常优秀。在MySQL中,数据表是数据存储的最基本单元。在实际应用中,数据表的重载是一种非常常见的操作技巧,它可以帮助我们提高数据库的运行效率,提升系统的稳定性。本文将从MySQL中数据表重载的概念、原理和实践应用等方面详细介绍这一操作技巧。一、什么是数据表重载数据表重载是

利用MySQL的AVG函数计算数据表中数字列的平均值方法简介:MySQL是一种开源的关系型数据库管理系统,拥有丰富的内置函数来处理和计算数据。其中,AVG函数是用于计算数字列的平均值的函数。本文将介绍如何使用AVG函数来计算MySQL数据表中数字列的平均值,并提供相关的代码示例。一、创建示例数据表首先,我们需要创建一个示例数据表来进行演示。假设我们有一个名为

如何利用thinkorm实现数据表之间的关联查询引言:在进行数据库开发中,经常会碰到需要在多个数据表之间进行关联查询的情况。利用thinkorm这一优秀的数据库ORM框架,可以轻松地实现数据表的关联查询,提高开发效率。本文将介绍如何利用thinkorm实现数据表之间的关联查询,并提供代码示例帮助读者更好地理解。一、基本概念在进行关联查询之前,首先需要了解th

如何实现MySQL底层优化:数据表的水平和垂直分割策略,需要具体代码示例引言:在大型应用场景下,MySQL数据库经常面临着海量数据的存储和查询压力。为了解决这个问题,MySQL提供了数据表的分割策略,包括水平分割(HorizontalPartitioning)和垂直分割(VerticalPartitioning)。本文将介绍如何实现MySQL底层优化,重

MySQL中如何使用MAX函数找到数据表中最大的数值引言:在MySQL中,我们经常需要对数据表进行各种查询和分析,其中包括找出数据表中的最大数值。使用MAX函数可以轻松地找到数据表中的最大值,并且在进一步处理数据时非常有用。本文将介绍如何使用MAX函数来找到数据表中最大的数值,并给出相应的代码示例。一、MAX函数简介MAX函数是MySQL中的一个聚合函数,用
