一种动态优化数据表的方法及装置的制作方法

文档序号:6441205阅读:159来源:国知局

专利名称::一种动态优化数据表的方法及装置的制作方法
技术领域
:本发明属于数据库
技术领域
,尤其涉及一种动态优化数据表的方法及装置。
背景技术
:随着社会信息化的日益发展,数据库在企业、学校以及图书馆中都得到了普遍的应用。在日常应用中,数据库系统需要存储大量数据,而随着业务的不断发展,数据量越来越多,造成硬盘空间容量不足,将严重影响数据库的操作效率。为了确保数据库系统具备良好的运行性能,在系统容量有限的前提下,如何节省出更大的数据空间成为人们争相解决的问题之一,其中合理分配及利用数据库内存空间起着至关重要的作用。在Mysql中,对于myisam引擎来说,表的行模式是表结构优化的重要内容。表的行模式包括固定模式(fixedrowformat)和动态模式(dynamicrowformat)。固定模式对于mysql存储引擎来说具备访问响应快的特点,它相对来说不容易被破坏。动态模式占用较少的硬盘空间,但是具有碎片(fragmentation)的危险,这个时候就需要用optimizetable来解决这个问题。从性能测试来说,大数据量的时候,固定模式的查询性能得到很大的提高,但是占用空间明显比动态模式占用很多。所以优化myisam引擎的表具有十分重要的作用,可以利用当前资源更好地提高性能。
发明内容本发明提供一种动态优化数据表的方法及装置以解决上述问题。本发明提供一种动态优化数据表的方法,包括以下步骤。将数据表调整为固定模式,并获取一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及所述一定时间段内最大delete操作变化系数。根据所有数据表的空间变化率及索引变化率判断是否需要模式变更。若数据表需要进行模式变更,根据每个数据表的单位时间select操作量及单位时间delete操作量依次判断每个数据表是否需要变更为动态模式。根据每个数据表一定时间段内最大delete操作变化系数判断数据表是否需要优化。本发明提供一种动态优化数据表的装置,包括取值模块、第一判断模块、第二判断模块、第三判断模块,所述取值模块连接所述第一判断模块,所述第一判断模块连接所述第二判断模块,所述第二判断模块连接所述第三判断模块。所述取值模块,用于将数据表调整为固定模式,并获取一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及所述一定时间段内最大delete操作变化系数。所述第一判断模块,用于根据所有数据表的空间变化率及索引变化率判断是否需要模式变更。所述第二判断模块,用于若数据表需要进行模式变更,根据每个数据表的单位时间select操作量及单位时间delete操作量依次判断每个数据表是否需要变更为动态模式。所述第三判断模块,用于根据每个数据表一定时间段内最大delete操作变化系数判断数据表是否需要优化。相较于先前技术,根据本发明提供的动态优化数据表的方法及装置,分别获取数据表一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及一定时间段内最大delete操作变化系数,并根据所有数据表的空间变化率及索引变化率判断是否需要模式变更。若数据表需要模式变更,再根据单个数据表的单位时间select操作量及单位时间delete操作量判断是否变更为动态模式,并根据每个数据表一定时间段内最大delete操作变化系数判断数据表是否需要优化。根据与单个数据表设置的不同预设值作比较,灵活控制数据表的模式,并对数据表进行动态优化,有效提高了数据库空间利用率。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1所示为根据本发明的较佳实施例提供的动态优化数据表的方法的流程图;图2所示为根据本发明的较佳实施例提供的动态优化数据表的装置的示意图;图3所示为根据本发明的又一较佳实施例提供的动态优化数据表的装置的示意图。具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1所示为根据本发明的较佳实施例提供的动态优化数据表的方法的流程图。如图ι所示,本发明的较佳实施例提供的动态优化数据表的方法包括步骤101104。步骤101将数据表调整为固定模式,并获取一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及所述一定时间段内最大delete操作变化系数。具体而言,所述数据表,即为myisam引擎的mysql数据表,将数据表调整为固定模式的方式为读取各个数据表,查找所述数据表中是否含有blob或text类型的字段,若是,则将所述blob或text类型字段拆分为独立的其它数据表,直到所述数据表中不再含有blob或text类型字段,此时数据表即为固定模式。例如,现有student_l表,表内含有stu_id、stu_name及stu_description字段,程序表述如下CREATETABLEstudent、(、stu—id、int(10)unsignedNOTNULL,、stu—name、char(10)DEFAULTNULL,’stu—description、text,PRIMARYKEY(stu—id、))ENGINE=MyISAMDEFAULTCHARSET=Iatinl其中stu_description字段为text类型,因此,需将stu_description字段从表student,1中拆分出去。拆分后有两个数据表,一个是student表含有stu_id和stu_name字段,另外一个为stu_decpt表含有stu_id和stu_description字段。在将数据表调整为固定模式后,获取一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及一定时间段内最大delete操作变化系数。上述各参数中,所述数据表的空间变化率,表示数据表的占用空间在单位时间段内变化程度;所述索引变化率,表示索引的占用空间在单位时间段内变化程度;所述单位时间delete操作量,为单位时间段内数据表的delete操作个数;所述单位时间select操作量,为单位时间段内数据表的select操作个数;所述delete操作变化系数,为一个delete操作所删除记录条数与数据表总条数的比值,不同delete操作对应不同变化系数,一定时间段内每个数据表中最大变化系数即为该数据表最大delete操作变化系数。若以1小时为单位时间段,下面以数据表A表第一天至第三天11-12时之间的数据为例,详细说明各参数获取过程。其中,空间变化率取值方法为第一天11-12时空间变化率即按第一天11-12时单位时间空间变化量获取;第一天11-12时空间变化率与第二天11-12时单位时间的空间变化量相加再除以2,得到第二天11-12时空间变化率;第二天11-12时空间变化率与第三天11-12时单位时间的空间变化量相加再除以2,得到第三天11-12时空间变化率。同样地,索引变化率也按以上方法计算得出。各参数获取详细如下表所示。权利要求1.一种动态优化数据表的方法,其特征在于,包括以下步骤将数据表调整为固定模式,并获取一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及所述一定时间段内最大delete操作变化系数;根据所有数据表的空间变化率及索引变化率判断是否需要模式变更;若数据表需要进行模式变更,根据每个数据表的单位时间select操作量及单位时间delete操作量依次判断每个数据表是否需要变更为动态模式;根据每个数据表一定时间段内最大delete操作变化系数判断数据表是否需要优化。2.根据权利要求1所述的方法,其特征在于,根据所有数据表的空间变化率及索引变化率判断是否需要模式变更的方式为获取所有数据表空间变化率的平方与索引变化率的平方之和,比较所述平方和数值与预设范围值,若所述平方和值大于所述预设范围值,则数据表需要模式变更。3.根据权利要求1所述的方法,其特征在于,根据数据表的单位时间select操作量及单位时间delete操作量判断所述数据表是否需要变更为动态模式的方式为获取所述数据表的单位时间select操作量与单位时间delete操作量的乘积,并比较所述乘积与所述数据表对应的预设模式值,当所述乘积小于所述数据表对应的预设模式值时,所述数据表变更为动态模式。4.根据权利要求1所述的方法,其特征在于,根据每个数据表一定时间段内最大delete操作变化系数判断数据表是否需要优化的方式为当所述数据表一定时间段内最大delete操作变化系数大于所述数据表对应的预设值时,对所述数据表进行优化。5.根据权利要求4所述的方法,其特征在于,若所述数据表为动态模式,用optimizetable工具进行优化,若所述数据表为固定模式,用myisampack工具进行优化。6.根据权利要求1所述的方法,其特征在于,将数据表调整为固定模式的方式为拆分含有blob或text类型字段的数据表,拆分后的数据表不包含blob或text类型字段,即为固定模式。7.一种动态优化数据表的装置,其特征在于,包括取值模块、第一判断模块、第二判断模块、第三判断模块,所述取值模块连接所述第一判断模块,所述第一判断模块连接所述第二判断模块,所述第二判断模块连接所述第三判断模块,所述取值模块,用于将数据表调整为固定模式,并获取一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及所述一定时间段内最大delete操作变化系数;戶脑第一判断模块,用于根据所有觀表的空间变化率及索弓丨变化率判断是否需要模式变更;所述第二判断模块,用于若数据表需要进行模式变更,根据每个数据表的单位时间select操作量及单位时间delete操作量依次判断每个数据表是否需要变更为动态模式;所述第三判断模块,用于根据每个数据表一定时间段内最大delete操作变化系数判断数据表是否需要优化。8.根据权利要求7所述的装置,其特征在于,还可以包括优化模块,所述优化模块连接所述第三判断模块,所述优化模块用于若所述第三判断模块判断所述数据表需要优化,对所述数据表进行优化。全文摘要本发明提供一种动态优化数据表的方法及装置。本发明方法包括以下步骤,将数据表调整为固定模式,并获取一定时间段内每个数据表的空间变化率、索引变化率、单位时间delete操作量、单位时间select操作量以及所述一定时间段内最大delete操作变化系数。根据所有数据表的空间变化率及索引变化率判断是否需要模式变更。若数据表需要进行模式变更,根据每个数据表的单位时间select操作量及单位时间delete操作量依次判断每个数据表是否需要变更为动态模式。根据每个数据表一定时间段内最大delete操作变化系数判断数据表是否需要优化。文档编号G06F17/30GK102385634SQ20111041689公开日2012年3月21日申请日期2011年12月14日优先权日2011年12月14日发明者胡加明申请人:苏州阔地网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1