张宝燕
(晋中学院,山西 晋中 030600)
基于遗传算法的MYSQL数据库检索策略优化与设计
张宝燕
(晋中学院,山西 晋中 030600)
文章借鉴国内外数据库厂商的数据库检索优化,结合遗传算法对数据库检索进行了优化设计,每个部分都从遗传算法自身的编码定义、基因结构、染色体结构、适应度函数、选择算子、组合交叉、变异算法等多个部分进行了设计,以达到数据库检索优化的目的,实现MySQL数据库能够自我动态调整运行状态,也能够接受人工干预的检索调优方式,实现更大范围内的可适应性.
遗传算法;数据库检索优化;MySQL数据库
目前数据库的发展和关系数据库技术的发展密不可分.关系数据库理论的发展建立,为系统的开发、维护大型数据库提供了理论基础,同时为科学高效的数据库存储、数据库记录检索、优化,提供强有力的设计规范[1].计算机在数据库的管理存储以及检索方面对于应用程序的实际应用有很多方面的作用影响.数据库管理系统DBMS在面临多用户环境下,作为标准的数据库支持管理,能够逐步地从角色、权限、框架下完成实际应用的受限管理,这种安全策略是数据库在数据资源的权限限定中提供的安全保障和管理限制,有了这个部分的框架设计,能够为系统在资源分配和受限环境中的修改使用提供帮助.本课题的目的在于,能够实现对MYSQL数据库检索引擎及其检索优化器的设计,能够为关系数据库的设计和实现提供一种解决方案.
目前数据库优化技术主要包括两个方面:
0.1数据库关键外部参数配置
一般地,数据库系统参数都能够为具体的实际应用,提供一些关键的,简要的优化控制,这种多维度下各个参数的具体设计,能够使得管理员更具现实的具体硬件条件,以及所要面对的具体实际问题,进行具体详细的策略配置,这种配置在实际的程序应用部署是必要的,对于发挥出硬件设备系统最大化效能,资源分配合理化管理都是很必要的.这种配置的方式存在的问题在于,它的设置往往是静态配置,很少涉及到动态配置,而且静态配置的过程,对于程序部署人员而言,缺少更多内部实现信息的条件下,往往很难设计配置出最优化的解决方案来,它对于系统管理配置人员的要求很高.而且在实际的具体过程中,对于数据库的访问情形,有时候难以用可以形式化的表达来反应这种情形,甚至对于很多应用情形而言,管理员也不明确具体的实际访问形式和特征.对于系统资源的配置存在很大的盲目性.
0.2查询过程重用方法
查询重用技术,指的是形同模式下查询语句的具体执行效果.对于这种情形是非常常见的,例如实际的大量的同样的查询请求,新闻内容的多次查询,往往这种结构是固定的,多次的.这在具体的实现中,就可以优化为一次的语法分析,一次的数据查询即可.对这种语句通过缓存策略存储在数据库当中,对于发起的查询请求,首先经过数据库缓存部分进行存在性查找,然后实现对于具体的已有的查询语句进行缓存结果的直接调用,提高了查询速率.
0.3查询重写规则重写
查询重写是将查询语句进行具体分析,将其解析执行分解为更高效的查询方式来进行语句转换,使得查询的实际效能更加高效.20世纪80年代IBM公司开发数据库系统Starburst,就采用了这种关键性的优化检索技术.
1.1编码设计
将参数设计为影响数据库运行效率的几大因素体现的属性,分别为:索引缓存区、连接缓存区、内存表缓存区、排序工作区、临时表缓存区、重用查询执行结果缓存区、日志缓存区.它们的配置参数都为整数,所以其对应的编码方式,直接采用整数作为对应的缓存区存储空间大小.其中为了简化存储字节,默认各个参数的单位配置,例如有的是kb单位,还有的是Mb单位,如果还有存在gb,以及tb甚至更大的单位,可以默认制定,在解读结果的时候,反向进行就能够获得最终结果的含义.
1.2基因设计
基因类,是关于基因结构的定义,它是能够将基因的结果进行程序存储的类,是遗传算法的最小单位,基因作为一个接口Gene,它提供了染色体访问接口,也就是说不同的染色体,以及未来构造的染色体,都能够通过基因接口正确地根据已有基因来实现构造自身的染色体结构.而这种可能就通过染色体的定义,以及基因接口的中间转换来实现预先定义,使得之间的灵活访问和定义特别方便.按照其对应的参数,设定对应的基因,它们采用整数基因的结构来存储设计,分别是:索引缓存区基因、连接缓存区基因、内存表缓存区基因、排序工作区基因、临时表缓存区基因、重用查询执行结果缓存区基因、日志缓存区基因.
1.3染色体设计
染色体定义,他通过泛型机制来约束初始化染色体实现类的限定,染色体的泛型初始化只能是基因的实现才能够初始化,也就是说染色体内部的结构只能是有了基因才能初始化,没有基因的染色体从定义中我们可以看到,无法进行进一步的组合交叉和变异以及其他选择等运算.由于染色体“基因位”的存在,因此,简单情况下,染色体元素通过数组的方式或者列表的方式存储构成染色体内部基本结构.这样同类型的染色体就能够进行对等位置的组合交叉操作,以及其他操作.染色体内部,通过数组的形式,采用单一长度的染色体结构存储,对应数组位置为:索引缓存区基因、连接缓存区基因、内存表缓存区基因、排序工作区基因、临时表缓存区基因、重用查询执行结果缓存区基因、日志缓存区基因.
1.4适应性函数设计
适应性选择,是对种群当中的个体适应性判别的适应度函数来控制的.适应度函数,提出了从某些角度去看,去评估,某候选解更加适合接近最终的最优解或者次优解.反之就是不适合,偏向于淘汰的过程.特别的,它增加了可行性解的判别,对于存在产生非可行解情况的进化功能设计,可行解的判别就有必要执行,如果产生不是可行解的情况,就要被丢弃.设定sql语句备选方案为QTi,i=1,2,3,…,n.执行sql语句时间函数为ESi,i=1,2,3,…,n.适应度函数ff为:∑ESi(QTi).[5,6]
1.5选择算子设计
选择概率设定为0.53,可以通过GA_conf.property文件配置做具体修改.选择内部算法采用轮盘赌方式,逐个实现选择组合交叉.
1.6组合交叉算子设计
对于组合交叉算子而言,它通过被遗传算法对象进行整合,通过配置文件的方式初始化遗传算法各个配置参数.例如组合交叉、变异、个体扩展等,以及概率参数配置等等.而具体的组合交叉算子而言,首先存在寻找组合个体,以及两两组合策略选取的问题.是否是传统的两两组合,还是2+1组合,甚至更复杂.这取决于实际的应用情形.高效地找到个体进行交叉,能够产生新的个体,它同变异算子一样,都是为了搜索最优解的存在而不断地努力.简单地交叉运算,就是随机选择发生交换的对等位置,而选择交换位置和总体位置染色体长度的比率,通过遗传算法配置参数给定.根据随机选取结果,将对应位置上的基因进行双方互换.从而产生新的染色体.选择概率设定为0.29,可以通过GA_conf.property文件配置做具体修改.能够在基因位对应的索引缓存区基因、连接缓存区基因、内存表缓存区基因、排序工作区基因、临时表缓存区基因、重用查询执行结果缓存区基因、日志缓存区基因之间将对应的位置进行基因交换,代交换的基因位通过选择概率除以0.29乘以7取下整的方式计算偏移量.
1.7变异算子设计
染色体变异过程,在定义中较为简单,因为它只针对个体自身,没有和其他周围的染色体产生关联,所以运算开销较小,而同样的变异概率,也取决于遗传算法对象的参数配置,这个概率一般而言会比较小.意味着变异过程只能是整体驱使下的极小范围变异,大规模变异无疑是一个种群的灭顶之灾.这里选择概率设定为0.03,可以通过GA_conf.property文件配置做具体修改.
本文对MySQL数据库检索进行了优化,通过结合遗传算法的优势,能够在复杂的应用环境当中体现出良好的性能.在设计过程当中对遗传算法的性能配置以及结构进行了探讨,并对数据库重要的参数配置结合遗传算法进行了优化设计.经过测试发现,MySQL数据库对insert,select,delete关键字执行速度要比update,alter等关键字要快,在sql存储过程当中,应当尽可能使用前面的关键字来实现其某一功能.通过该算法对MySQL数据库进行检索优化在实际使用当中取得了很好的效果.
[1] 陈子侠.城市卷烟配送线路的网格划分算法[J].上海交通大学学报,2013,37(7):1013-1017
[2] 张 潜,高立群,胡祥培,等.物流配送路径多目标优化的聚类一改进遗传算法[J].控制与决策,2013(7):418-422
[3] 池 洁,李 莉.物流中配送区域与配送路线网络优化法[J].运筹与管理,2013,12(2):123-126
[4] 吴冬晖,马 良.最大团问题的改进遗传算法求解[J].计算机应用,2008,28(12):3072-3073
[5] CHUANG J C.Distributed network storage sercice with qllal-of service quarantees[J].Journal of Network and Com.Puter Applications,2010,23(12):163-185
[6] SAM R T,JEAN Y P,TONG S.Heuristic approaches to veM.cle routing with backhauls and time windows[J].Computerand Operations Research,2014,23(11):1043-1057
Design and Optimization of the Search Policy for MYSQL Database System
ZHANG Baoyan
(Jinzhong University, Jinzhong 030600, China)
This paper referring to domestic and foreign database vendor database search optimization, combining the genetic algorithm was used to optimize the design of database search, each part are from the genetic algorithm code definitions, gene structure, genome structure, adapt to function, selection operator, cross combination, different algorithm and so on multiple parts of the design, in order to achieve database retrieval optimization and MySQL database can self dynamically adjusts the operating state, also can accept manual intervention search tuning methods, to achieve a greater range of adaptability.
genetic algorithm; database search optimization; MySQL database
2015-07-20
张宝燕(1982-),女,山西晋中人,硕士,晋中学院讲师,主要从事数据研究.
1672-2027(2015)03-0045-03
TP315
A