MySQL数据库几种“减肥”方法
来源:互联网 发布:舞曲制作软件 编辑:程序博客网 时间:2024/04/28 01:40
方法一:空值并不一定不占用空间
很多数据库管理员认为空值不会占用系统资源,其实这是一个错误的认识。在数据库设计时,不喜欢将字段的属性设置为NOT NULL。而让用户根据自己的需要来输入数据。这种做法对于数据库的性能是不利的。
如果有可能的话,尽量将列设置为NOT NULL,即不允许有空值。这么做的话,可以加快后续处理的速度,同时从数据存储来看还可以使得每列节省一位,从而达到数据减肥的目的。在实际工作中,如果有些情况不需要用户输入数据时,还可以通过默认字段来达到非空的目的。
方法二:使用尽量小的mysql数据类型
数据类型的大小也会影响到基础表的大小。如对于MEDIUMINT和INT两个数据类型,其都可以用来保存整数型的数据,只是其能够保存的精度不同而已。但是从存储数据的角度来看,前者所需要的存储空间要比后者节省25%左右。为此在能够使用MEDIUMINT的情况下,就不要使用INT。另外在定义数据长度的时候,在满足需求的情况下,也要尽量的短。
方法三:mysql索引与数据表大小的关系
如果对于比较小的列设置索引,那么索引也将占用比较少的资源。可见,索引与数据表大小也有紧密的联系。在合适的地方、合适的时机设置合适的索引,也可以实现对数据减肥的目的。设置索引时尽量对前缀进行索引。在MySQL数据库中,支持对一个字符列的最左边部分创建一个索引。这也就是说,数据库会将某个字段根据一定的规则拆分为前后两个部分。拆分后前面一部分的数据如果能够保持唯一,那么就只需要对前面一部分设置索引即可,而不需要对整个字段的数据设置索引。这无疑可以缩小索引所占用的资源,实现减肥的目的。更短的索引,能够提供更快的查询速度。但我们的注意一点,索引不能够滥用。使用索引确实可以提高数据的处理能力,但是索引同时也会带来额外的开销。只有这个收益大于开销时,使用索引才能够提升数据库的性能。
方法四:不该节省的地方不要节省
数据库能够节省硬盘空间的地方,就要节省。而不能够节省的地方,则不能够为了减肥而将其精简下来。有时候这会起到适得其反的效果。如在MyISAM标中,如果没有任何可变长的列,那么最好使用固定大小的数据类型。虽然采用固定长度的数据类型,往往会浪费一定的存储空间。因为如果用户输入的数据不足,采用固定长度的话,数据存储时仍然会按这个固定的长度来存储。但是在这种情况下,能够用固定长度的,还是要使用固定长度。因为这种情况下虽然会浪费一定的硬盘空间,但是却可以提高数据的查询速度。
方法五:将表分割以实现减肥的目的
在mysql数据库优化时,可以将一个经常被扫描的大表分割为2个或者2个以上的表示非常有益的。如在日常工作中,有一个动态格式的数据表,并且这个数据是使用一个扫描表时,就会用这个来找出相关行的比较小的静态格式的表。通过这个表的拆分,可以将一块大蛋糕分为几块小的蛋糕,以利于后续数据的统计与分析。当然这个效果的好坏,直接跟这个拆分的规则有关。关于表如何拆分才能够达到理想的效果,这里就不做详细介绍了。
- MySQL数据库几种“减肥”方法
- Mysql数据库备份的几种方法
- mysql导出数据库几种方法
- mysql导出数据库几种方法
- mysql导出数据库几种方法
- mysql导出数据库几种方法
- mysql导出数据库几种方法
- mysql导出数据库几种方法
- ASP链接数据库的几种方法(ACCESS,MSSQL,MySql)
- 将Excel数据导入mysql数据库的几种方法
- php连接mysql数据库的几种方法
- windows下mysql每天定时备份数据库几种方法
- windows下mysql每天定时备份数据库几种方法
- MySQL数据库表锁定的几种方法实现
- windows下mysql每天定时备份数据库几种方法
- mysql教程导出数据库教程几种方法
- 浅谈MySQL数据库备份的几种方法
- 关于mysql数据库的几种密码修改方法
- 在ubuntu下创建、编译并运行一个C++程序的过程
- Android应用的内存分析
- hash_map将移除,需要用unordered_map代替hash_map
- 实时流媒体协议
- 避免内存泄露
- MySQL数据库几种“减肥”方法
- Dalvik JIT - jump to the JITed code by Ben Cheng
- Java——创建线程程序
- Uva Oj 1388 - Graveyard
- 用集合的视角窥探二项式定理的真实面目
- 创业之路-毕业季的冲动1
- php判断一个字符串是否被包含在另一个字符串中
- 史上最全的Android的Tab与TabHost讲解
- 一个操作系统的实现---读书笔记(2)---平台搭建