文章目录
- 前言
- 一、数据库文件为什么会那么大?
- 1.数据空间
- 2.日志空间
- 3.索引空间
- 4.其他
- 二、我的解决方案
- 总结
前言
在维护网站时我们经常会遇到数据库占用服务器磁盘空间的问题。高端的食材往往只需要采用最朴素的烹饪方式。本文我讲一个简单粗暴但有效的方法。本文以SqlServer为例进行介绍,但所有关系型数据库均适用这个解决方案。
一、数据库文件为什么会那么大?
数据库文件主要包含3部分内容:数据空间、日志、索引空间。
1.数据空间
也就是数据表本身的数据。这部分内容的压缩只能靠数据清理。如僵尸用户数据清理。数据清理确实是一个有效的方法。但这不是本文要讲的方法。
2.日志空间
日志作用是用来记录增删改等对数据库有更新的内容的记录(对数据库的改动),而查询的语句如show、select语句,不会被日志记录。主要用于数据恢复,和日志查看。
清理日志是一个简单有效的解决方案。具体怎么清理数据库的日志空间,网上有很多教程,本文展开讲。
3.索引空间
索引相当于一本书的目录,通过目录我们可以迅速定位书中要找的内容。索引的实现主要是通过B+树。
建索引的优缺点:
优点:大大加快对数据的查询速度
缺点:占物理空间,对数据库进行增删改的时候也要动态的维护索引。
如果我们对一张数据表某些字段建立了索引,它就会随着用户操作对其进行增删改,所以一张数据表的索引空间随着时间变化,会慢慢变大。
具体怎么清理数据表的索引空间,网上有很多教程,本文展开讲。
4.其他
数据库当然还有其他内容会占用空间。但我平时用的不多,就不讲了。
二、我的解决方案
我们可以把数据库通过生成脚本的方式,把数据表结构和数据备份下来。然后删除原有数据库,再运行刚生成的数据库脚本,重新生成一个只有数据空间的数据库。
总结
以上就是今天要讲的内容。这是一种简单粗暴的方式,当然也有更加优雅的方式,比如编写数据库清理脚本每隔一段时间自动运行一次,清理日志空间和索引空间。