获取表名的方法、装置和服务器的制作方法

文档序号:6575477阅读:148来源:国知局

专利名称::获取表名的方法、装置和服务器的制作方法
技术领域
:本发明涉及通信领域,特别涉及一种获取表名的方法、装置和服务器。
背景技术
:MySQL数据库属于开源数据库,特点是使用方便、结构简单、性能优越。现有技术中,通常是通过showtables命令来获取MySQL数据库中数据表的表名。当MySQL数据库中的数据表数量较多时,采用showtables命令从众多数据表表名中获取需要查询的表名的时间会很长。而对于高性能的软件系统来说,需要快速的从众多数据表表名中获取需要查询的表名,以便于根据获取的表名查询该表名对应的数据表中的数据。以软件系统中的流量分析系统为例,该流量分析系统查询的每个数据表均包括10亿条左右的数据,并且数据库中数据表的总量超过5000个。流量分析系统需要对海量数据进行查询,通过一些优化技术,流量分析系统查询包括10亿条左右数据的数据表需要20秒左右的时间。但是通过showtables命令从5000个以上的表名中获取该数据表的表名需要30秒以上的时间。因此采用showtables命令获取表名的方法难以满足高性能软件系统的要求。综上所述,当数据库中存在大量数据表时,现有技术中获取数据表表名的速度较低,难以满足高性能软件系统的要求。
发明内容本发明的目的是针对现有技术中的问题,提供一种获取表名的方法、装置和服务器,从而提高获取表名的速度,以满足高性能软件系统的要求。为实现上述目的,本发明提供了一种获取表名的方法,包括创建表名文件,所述表名文件包括数据库中数据表的表名;接收表名查询指令;从创建的表名文件中获取与所述表名查询指令匹配的表名。为实现上述目的,本发明提供了一种获取表名的装置,包括创建模块,用于创建表名文件,所述表名文件包括数据库中数据表的表名;数据库表维护模块,用于接收表名查询指令,并从所述表名文件中获取与表名查询指令匹配的表名。为实现上述目的,本发明还提供了一种服务器,包括上述获取表名的装置。本发明的技术方案中创建的表名文件中包括数据库中数据表的表名,当需要查询数据表中的表名时,可以直接从创建的表名文件中获取与表名查询指令匹配的表名,无需通过showtables命令获取表名,从而提高了获取表名的速度,满足了高性能软件系统的要求。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1为本发明实施例一提供的一种获取表名的方法的流程图;图2为本发明实施例二^是供的一种获取表名的方法的流程图;图3为本发明实施例三提供的一种获^i表名的装置的结构示意图;图4为本发明实施例四提供的一种获取表名的装置的结构示意图;图5为本发明实施例五^是供的一种服务器的结构示意图。具体实施例方式本发明实施例中,数据库可以为MySQL数据库。设置一个数据库服务器,在该数据库服务器中安装MySQL数据库,并且该数据库服务器可以支持多个版本的MySQL数据库。同时设置一个软件服务器,在该软件服务上安装基于5MySQL数据库的软件系统,由软件服务器中的软件系统查询数据库服务器中的MySQL数据库。或者仅设置一个服务器,将MySQL数据库和MySQL数据库的软件系统同时安装在该服务器上。图1为本发明实施例一提供的一种获取表名的方法的流程图,如图1所示,包括步骤IOI、创建表名文件,该表名文件包括数据库中数据表的表名;步骤102、接收表名查询指令;步骤103、从创建的表名文件中获取与该表名查询指令匹配的表名。本实施例中创建的表名文件中包括数据库中数据表的表名,当需要查询数据表中的表名时,可以直接从创建的表名文件中获取与表名查询指令匹配的表名,无需通过showtables命令获取表名,从而提高了获取表名的速度,满足了高性能软件系统的要求。图2为本发明实施例二提供的一种获取表名的方法的流程图,如图2所示,该方法包括步骤201、创建表名文件,该表名文件中包括数据库中数据表的表名;本实施例中,可以将表名文件创建于软件系统的某一文件目录下。该表名文件的文件名需要符合数据库中文件的命令规则。该表名文件的文件类型只要使表名文件能够被存储和读取即可,例如.txt,.xml,.ini等。在创建了表名文件之后,将数据库中数据表的表名写入表名文件中,这样表名文件中就包括了当前数据库中所有数据表的表名。如表1所示表1<table>tableseeoriginaldocumentpage6</column></row><table>从表1可以看出表名文件中每行数据保存的是一个数据表的表名,每行数据与数据库中数据表的表名是——对应的关系。进一步地,表名文件中还可以包括数据表的创建时间和创建者等表项。进一步地,当数据库中新增数据表时,可以将数据库中新增的数据表的表名写入表名文件中,如表2所示表2<table>tableseeoriginaldocumentpage7</column></row><table>从表2可以看出,数据库中新增了表名为defa4的数据表时,可以将该数据表的表名defa4写入表名文件中,进一步地还可以将该数据表的创建时间和创建者等信息写入表名文件中。进一步地,当数据库中删除数据表时,可以将数据库中删除的数据表的表名从表名文件中删除,如表3所示表3<table>tableseeoriginaldocumentpage7</column></row><table>从表3可以看出,数据库中删除了表名为defa3的数据表时,可以将该数据表的表名defa3从表名文件中删除,进一步地还需要将该数据表的创建时间和创建者等信息/人表名文件中删除。进一步地,当修改了数据库中数据表的表名时,可以将表名文件中该数据表的表名修改为修改后的该数据表的表名,如表4所示表4表名创建时间创建者abca2time2Aldefa5time2A2defa4time2Al从表4可以看出,当将数据库中的数据表的表名defa3修改为defa5时,可以将表4中的该数据表的表名defa3修改为defa5。进一步地当修改了数据库中的创建时间和创建者等信息,还可以将表名文件中该数据表的创建时间和创建者等信息修改为修改后的该数据表的创建时间和创建者等信自、综上所述,当数据库中的数据表的表名被增加、删除或者修改时,可以对表名文件中该数据表的表名进行增加、删除或者修改。步骤202、根据系统用户对数据表的查询权限为创建的表名文件设置查询4又限;当表名文件被赋予查询权限时,系统用户可以对该表名文件进行查询。具体地,系统用户可以直接向软件系统发送表名查询指令对表名文件进行查询;或者当软件系统执行系统用户发送的其它指令过程中需要查询表名时,软件系统会根据系统用户发送的其它指令生成表名查询指令对表名进行查询。进一步地,还可以根据系统用户对数据库的修改权限为创建的表名文件设置修改权限;当表名文件被赋予修改权限时,系统用户可以对该表名文件进行增加、删除或者修改。具体地,系统用户可以直接向软件系统发送数据表修改指令,由软件系统根据数据表修改指令在对数据库中的数据表进行增加、删除或者修改的同时对表名文件中的表名进行增加、删除或者修改。或者当软件系统执行系统用户发送的其它指令过程中需要修改数据库中的数据表时,软件系统会根据系统用户发送的其它指令生成数据表修改指令对数据库中的数据表以;^名文件进行增加、删除或者修改。具体地,当表名文件被设置了修改权限后,步骤201中当需要对表名文件中的表名进行增加、删除或者修改时,可以根据表名文件的修改权限对系统用户进行验证,验证成功后根据数据表修改指令对表名文件进行增加、删除或者修改。步骤2G3、接收表名查询指令;具体地,表名查询指令中包括数据表的表名信息、创建时间信息或者创建者信息。该表名查询指令可以是系统用户发送的,当系统用户需要查询表名时可向直接发送表名查询指令。或者,该表名查询指令还可以是软件系统发送的,软件系统接收并执行系统用户发送的其它指令过程中,当需要查询表名文件时会生成并发送表名查询指令。步骤204、才艮据表名文件的查询权P艮对系统用户进行验证,验证成功则执行步骤205,验证失败则执行步骤206;例如,可以通过表名查询指令中携带的系统用户的信息对系统用户进行验证。步骤205、从表名文件中获取与表名查询指令匹配的表名,流程结束。当表名查询指令中包括数据表的表名信息时,可从表名文件中获取与表名信息匹配的表名。例如,以表2为例,当表名查询指令中包括的表名信息为abc时,获取的与表名^f言息匹配的表名为abcal和abca2。上述获取表名的方式可称为模糊查询。或者同样以表2为例,当表名查询指令中包括的表名信息为abcal时,如果表名文件中存在表名abcal则获取的与表名信息匹配的表名仅为abcal,如果表名文件中不存在表名abcal则获耳又的与表名信息匹配的表名为空表名。这种获取表名的方式可称为精确查询。或者当表名查询指令中包括数据表的创建时间信息时,可从表名文件中获取与创建时间信息匹配的表名。以表2为例,当表名查询指令中包括的创建时间信息为time2时,获取的与创建时间信息匹配的表名为abca2、defa3和defa4。或者当表名查询指令中包括数据表的创建者信息时,可从表名文件中获取与创建者信息匹配的表名。以表2为例,当表名查询指令中包括的创建者信息为Al时,获取的与创建者信息匹配的表名为abcal、abca2和defa4。步骤206、拒绝执行系统用户发送的表名查询指令。实验结果表明,采用本实施例中的获取表名的方法,从5000个以上表名中获取一个表名的时间仅为0.03秒。与现有技术中通过ShowTab1es命令从5000个以上的表名中获取一个表名需要30秒以上的时间相比,速度提高了1000倍。本实施例中创建的表名文件中包括数据库中数据表的表名,当需要查询数据表中的表名时,可以直接从创建的表名文件中获取与表名查询指令匹配的表名,无需通过showtables命令获取表名,从而提高了获取表名的速度,满足了高性能软件系统的要求。图3为本发明实施例三提供的一种获取表名的装置的结构示意图,如图3所示,该装置包括创建模块11和数据库表维护模块12。创建模块11用于创建表名文件,该表名文件中包括数据库中数据表的表名;数据库表维护模块12用于接收表名查询指令,并从创建模块ll创建的表名文件中获取与表名查询指令匹配的表名。数据库表維护模块12接收的表名查询指令是由软件系统中的命令处理模块发送的。具体地,软件系统中的命令处理模块接收到系统用户发送的表名查询指令后,将该表名查询指令发送给数据库表维护模块12;或者软件系统中的命令处理模块接收并执行系统用户发送的其它指令过程中,当需要查询表名文件时会生成并向数据库表维护模块12发送表名查询指令。具体地,表名查询指令中包括数据表的表名信息、创建时间信息或者创建者信息。当表名查询指令中包括数据表的表名信息时,数据库表维护模块12可从表名文件中获取与表名信息匹配的表名。当表名查询指令中包括创建时间信息时,数据库表维护模块12可从表名文件中获取与创建时间信息匹配的表名。当表名查询指令中包括创建者信息时,数据库表维护模块12可从表名文件中获取与创建者信息匹配的表名。本实施例获取表名的装置创建的表名文件中包括数据库中数据表的表名,当需要查询数据表中的表名时,可以直接从创建的表名文件中获取与表名查询指令匹配的表名,无需通过showtables命令获取表名,/人而提高了获取表名的速度,满足了高性能软件系统的要求。图4为本发明实施例四提供的一种获取表名的装置的结构示意图,如图4所示,本实施例在上述实施例三的基础上,进一步地,数据库表维护模块12还用于接收数据表修改指令,并根据接收的数据表修改指令对表名文件进行增加、删除或者修改。进一步地,数据库表维护模块12还可以根据接收的数据表修改指令对数据库中的数据表进行增加、删除或者修改。具体地,当数据库表维护模块12根据数据表修改指令新增数据库中的数据表时,还会根据数据表修改指令将数据库中新增的数据表的表名写入^文件中,进一步地还可以根据数据表修改指令将数据库中新增的数据表的创建时间和创建者等信息写入表名文件中;或者当数据库表维护模块12根据数据表修改指令删除数据库中的数据表时,还会根据数据表修改指令将数据库中删除的数据表的表名从表名文件中删除,进一步地还可以根据数据表修改指令将数据库中删除的数据表的创建时间和创建者等信息从表名文件中删除;或者当数据库表维护模块12根据数据表修改指令修文数据库中的数据表的表名时,还会根据数据表修改指令将表名文件中该数据表的表名修改为数据库中修改后的该数据表的表名,进一步地,还可以数据表修改指令将表名文件中该数据表的创建时间和创建者等信息修改为数据库中修改后的该数据li表的创建时间和创建者等信息。其中,数据库表维护模块12接收的数据库表修改指令是由软件系统中的命令处理模块发送的。具体地,软件系统中的命令处理模块接收到系统用户发送的数据表修改指令后,将该数据表修改指令发送给数据库表维护模块12;或者软件系统中的命令处理模块接收并执行系统用户发送的其它指令过程中,当需要修改数据库中的数据表时会根据系统用户发送的其它指令生成并向凄t据库表维护沖莫块12发送数据表修改指令。进一步地,本实施例中的装置还包括与创建模块11连接的设置模块13。设置模块13根据系统用户对数据库的查询权限为创建模块11创建的表名文件设置查询权限。设置模块13还可以根据系统用户对数据库的修改权限为创建模块11创建的表名文件设置修改权限。进一步地,本实施例中的装置还包括与设置模块13连接的验证模块14。验证模块14根据设置模块13设置的表名文件的查询权限对系统用户进行验证,当验证成功时将验证成功的结果发送给数据库表维护模块12或者当验证失败时将验证失败的结果发送给数据库表维护模块12。数据库表维护一莫块12根据验证成功的结果从表名文件中获取与表名查询指令匹配的表名,或者数据库表维护模块12根据验证失败的结果拒绝执行表名查询指令。进一步地,验证模块14还可以根据设置模块13设置的表名文件的修改权限对系统用户进行验证,当验证成功时将验证成功的结果发送给数据库表维护模块12,由数据库表维护模块12根据数据表修改指令对表名文件进行增加、删除或者修改;或者当验证失败时将验证失败的结果发送给数据库表维护模块12,由数据库表维护模块12拒绝执行该数据表修改指令。本实施例获取表名的装置创建的表名文件中包括数据库中数据表的表名,当需要查询数据表中的表名时,可以直接从创建的表名文件中获取与表名查询指令匹配的表名,无需通过showtables命令获取表名,从而提高了获取表名的速度,满足了高性能软件系统的要求。图5为本发明实施例五提供的一种服务器的结构示意图,如图5所示,该服务器包括获取表名的装置1,具体地,该获取表名的装置1可采用上述实施例三或者实施例四中所述的获取表名的装置。当同时设置了软件服务器和数据服务器时,本实施例中的服务器可以为软件服务器。当仅设置一个服务器时,本实施例中的服务器可以为该设置的服务器。本实施例中的获取表名的装置可以单独设置于服务器中,还可以设置于服务器中的软件系统中,作为软件系统的一个组件。本实施例中的服务器创建的表名文件中包括数据库中数据表的表名,当需要查询数据表中的数据时,可以直接从创建的表名文件中获取与表名查询指令匹配的表名,无需通过showtables命令获取表名,从而提高了获取表名的速度,满足了高性能软件系统的要求。最后应说明的是以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的冲奇神和范围。权利要求1、一种获取表名的方法,其特征在于,包括创建表名文件,所述表名文件包括数据库中数据表的表名;接收表名查询指令;从创建的表名文件中获取与所述表名查询指令匹配的表名。2、根据权利要求1所述的方法,其特征在于,还包括将所述数据库中新增的数据表的表名写入所述表名文件中;将所述数据库中删除的数据表的表名从所述表名文件中删除;或者3、根据权利要求l所述的方法,其特征在于,还包括根据系统用户对数据表的查询权限为创建的表名文件设置查询权限。4、根据权利要求3所述的方法,其特征在于,所述从创建的表名文件中获取与所述表名查询指令匹配的表名之前包括根据所述表名文件的查询权限对系统用户进行验证,验证成功后执行所述从创建的表名文件中获取与所述表名查询指令匹配的表名。5、根据权利要求1至4任一所述的方法,其特征在于,所述表名查询指令包括数据表的表名信息;所迷从创建的表名文件中获取与所述表名查询指令匹配的表名包括从所述表名文件中获取与表名信息匹配的表名。6、一种获取表名的装置,其特征在于,包括创建模块,用于创建表名文件,所述表名文件包括数据库中数据表的表名;数据库表维护^t块,用于接收表名查询指令,并从所述表名文件中获取与表名查询指令匹配的表名。7、根据权利要求6所述的装置,其特征在于,所述数据库表维护模块还用于接收数据表修改指令,并根据所述数据表修改指令将数据库中新增的数据表的表名写入表名文件中;或者所述数据库表维护模块还用于接收数据表修改指令,并根据所述数据表修改指令将数据库中删除的数据表的表名从表名文件中删除;或者所述数据库表维护模块还用于接收数据表修改指令,并根据所述数据表修改指令将表名文件中数据表的表名修改为数据库中修改后的该数据表的表名。8、根据权利要求6或7所述的装置,其特征在于,还包括与所述创建模块连接的设置模块;所述设置模块,用于根据系统用户对数据表的查询权限为所述创建模块创建的表名文件设置查询权限。9、根据权利要求8所述的装置,其特征在于,还包括与所述设置模块和所述数据库表维护模块连接的验证模块;所述验证模块,用于根据所述设置模块设置的表名文件的查询权限对系统用户进行验证,当验证成功时将验证成功的结果发送给所述数据库表维护模块;所述数据库表维护模块根据所述验证成功的结果从所述表名文件中获取与所述表名查询指令匹配的表名。10、一种服务器,其特征在于,包括权利要求6至9任一所述的获取表名的装置。全文摘要本发明公开了一种获取表名的方法、装置和服务器。该方法包括创建表名文件,所述表名文件包括数据库中数据表的表名;接收表名查询指令;从创建的表名文件中获取与所述表名查询指令匹配的表名。本发明的技术方案中创建的表名文件中包括数据库中数据表的表名,当系统用户需要查询数据表中的数据时,可以直接从创建的表名文件中获取与表名查询指令匹配的表名,无需通过showtables命令获取表名,从而提高了获取表名的速度,满足了高性能软件系统的要求。文档编号G06F17/30GK101639854SQ200910091948公开日2010年2月3日申请日期2009年9月2日优先权日2009年9月2日发明者杰杨,陈华云申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1