中易网

如何节省数据库磁盘储存空间

答案:3  悬赏:0  
解决时间 2021-01-30 05:30
如何节省数据库磁盘储存空间
最佳答案
这个是经典问题了
是采用int型(自增量或手动增量),还是GUID还是联合主键(combo)
考虑这些问题无非从高效性和易用性上进行考虑。下面列出四种主键生成方式优缺点的比较:

自动增长字段
优点1. 使用简单
缺点1. 不同数据库获取当前值方式不同;
2. 难以应用在多个数据库间进行数据迁移的情况。
3.不能集群化

手动增长型字段
优点1.可以获得最新键值
2. 可以确保数据合并过程中不会出现键值冲突
缺点1.通常情况下需要建立一张单独的表存储当前主键键值;
2.增加一次数据库访问来获取当前主键键值;
3. 考虑并发冲突等,增加系统的复杂程度。
4. 不能集群化

使用GUID
优点 1. 直接生成GUID,获得最新键值以填充主键,使用方便;
2.可以确保数据合并过程中不会出现键值冲突;
3.避免了前两种方式获取当前键值所增加的开销。
缺点1.占用较多存储空间;
2.索引耗时;
3. 在多表链接查询时效率不如int型

使用“COMB”类型
优点1. 保留GUID的已有优点;
2. 利用时间信息与GUID组合起来,增加有序性以提高索引效率。
缺点1.需要设计COMB的生成算法;
2. 和GUID一样占用较多存储空间;
3. 在多表链接查询时效率不如int型,但优于GUID。

从上表的对比中可以看出,问题的焦点还是在是采用高效的,但可控性、可移植性差的整形,还是采用能使用GUID这样可控性和移植性高,但是效率低,存储大的字符型主键,真有点鱼和熊掌不能兼得的味道。(COMB需要设计生成算法,增加程序的复杂度,如果算法不当,会产生意想不到的结果,GUID也可以通过优化索引的方式提升性能,暂不使用COMB)
从数据库的角度来看,整形虽然查询的效率最高,但是数据的合并、移植存在着很大的问题,同时高并发的情况下,各种整形的生成方式都面临这问题,而且不利于集群化处理。而采用GUID生成方式的字符型,能很好解决集成和并发性的问题,但占用空间大,查询效率低可能成为系统运行后将出现的问题。
从程序开发的角度上看,整形生成方式的生成主键非常方便,但是主键的获取,需要整个事务结束,才能从数据库中取到,同时在多关联表保存的时候,需要先保存主表,将产生的主键传给字表,从而也可以造成性能的缺失,并且无法直接获取主键,会增加程序开发处理的复杂性。而字符型的主键,需要程序人员自定义主键生成规则,需要认为的干预主键的生成,但是主键可以在插入数据库之前就能拿到,方便程序的处理。
从系统数据的角度来看,业务数据可能存在大量的并发,采用GUID的方式是非常方便的,在数据级别很大的情况下,可以方便的进行集群化处理。档案型数据并发量小,但是被引用的多,数据合并和集成的情况也很多,完全使用整形是不合适的,完全采用GUID,又会引起性能的缺失,需要更加折中的方案,既保证使用可控性较强的能唯一标识的字符串,同时又要尽量降低字符串占得字节数。而对于系统辅助数据,根据实际情况灵活使用,不做硬性统一,在数据量较小的情况下,尽量采用整形。
全部回答
采用高压缩
追问:可否详细描述一下,高压缩的问题啊!
你设计程序的时候就该优化吧!
追问:不是我设计的,我是接别人设计的表来做,我也很郁闷呢!现在请高手帮我“补牢”哦!!
追答:你用什么软件?这个如果你接别人的,你先清空数据库在用了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
沈阳花钱念的高护学校
请教:轩逸2.0自动豪华,上坡时明显感觉降速
大家说说戴尔p2314h怎么样
下载好rom包用什么软件可以刷?
罗志祥拍过的电视剧中,那部最好看?
旧社会仆人怎么称呼少爷的儿子?
公元1988年08月27日14时50分出生的,哪位大师
求一份护士面试的时候回答业务专长是什么
南昌到首阳山怎么走
普通住宅的楼层高度和教室的大概是多少
二零一六年零三八期出什么
崩于泰山而不然的反义词是什么?
逆差和货币贬值的关系?
试述沉积岩的形成过程
请问徵声七调,变徵七调,变宫七调都是什么?
推荐资讯
为什么现在有些中国人去参拜日本靖国神社?哎
中国联通,每月400分钟,800兆流量的业务开通了
昆山化妆造型学校学费是多少
仙源小学(宜宾南溪县)地址在哪,我要去那里办
华夏银行24小时自助银行地址在哪,我要去那里
南通第二中学的初中部怎么样
卫生间s管什么时候装
电流表接线图Ia*什么意思电流表接线图IA*,IB
劳勃国王为什么做了国王
西山区的公租房在什么地方
她是位性格多变的人 初中作文700字
古筝里的琵琶音是怎么弹出来(详细)
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?