前言:中文期刊网精心挑选了mysql数据库范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
mysql数据库范文1
关键词:移动应用;mysql;优化;PHP
前言
开发的一套手机应用的后端服务器支持系统,目前的业务是前端两台Web服务器做HA,一台服务器做图片服务器。前端web服务器承担的是用户访问和手机客户端的API接口数据处理工作,要求处理速度快但是没有大规模查询。每天用户访问量大约为5-10万IP,分别用两台web做HA负载。两台Web共用一个数据库保持数据一致性,另外使用一台服务器数据库做数据库从库。从库作用是在主库死机之类的问题出现的时候,切换到从库来进行服务。但是实际起到的作用只是一个备份设备而已。
1 当前面临的问题
每次后台进行统计查询,由于数据总量过大,查询全表就会造成表锁死或者低速响应,造成客户端无法得到正常响应。鉴于这种问题,我们对后台统计功能进行一些优化处理。
问题的原因很容易定位,就是表数据量太大,可是业务的逻辑又不允许进行简单分表。尝试做表分区效果也很一般。查询大表的速度实在难以接受:例如lee_userlog表数据已经有两千六百多万条数据,每天需要查询这个表,看数据总体统计情况。具体问题分析如下:
直接加memcache的缓存,生存时间10秒-60秒不等。好处是实施方式简单,但是非常不适合我们的业务,因为每次生成缓存的查询还是非常慢,并且由于每次查询后间隔至少10分钟才查第二次,因此这种简单的缓存方式根本起不到任何作用,这样的查询并不十分频繁,每小时大约要看2-3次,因此直接做缓存是没有意义的,因为第一次查的时候还是慢,第二查完以后可能十几分钟后才查第二次。如果将结果缓存到半小时以上,将导致两次查询结果完全相同,导致无法对运营状态进行有效的数据分析,运维人员没法根据统计结果做出相应调整,考虑增加简单sql查询缓存,解决了按天查询的时候每天固定数据缓存的问题,提升效果明显,但是查当天数据的时候由于数据量还是很大,所以依然影响速度。进一步考虑的方案是,sql每次都查全表,但是后台管理界面查询时直接返回缓存数据,但是运行一个更新数据的服务,每10分钟在后台运行一次缓存对应的sql语句,将结果更新到结果集中,这样的设计牺牲了部分实时性,但符合实际使用的情况,至少间隔10分钟才会进行查询查看统计结果。同时大大增加用户使用的查询速度。瞬间即可得到结果,根据这种思路我们分析实际方案。
2 问题的解决方案
首先可以做的最简单的事情就是把前端用户使用数据库和后台查询数据库分开,这样进行读写分离后至少进行大规模查询不会造成业务卡死。我们建立一个只读的用户连接到从库,用户权限设置为只允许进行SELECT操作。
其次根据实际业务逻辑将问题拆解为三种情况:
(1)按日存储统计结果类型数据,每天会产生数据,但是过了当天数据就变为静止数据。统计结果不会改变。
(2)数据总体情况统计,整个表的数据记录,求和等操作。随时跟着时间在增加或减少。
(3)更复杂的统计情况,数据按日统计,但统计出来的数据也随时会变化。
第一种情况:按日统计的,在第一次查询的时候保存为一条数据记录通过查询时间来分析,如果含有当天记录则不缓存:
if (date('Y-m-d',$puttime)!=date('Y-m-d') && date('Y-m-d',$endtime)!=date('Y-m-d'))
如果是按日统计数据,不含有当天数据的,直接缓存统计结果到另一个缓存表中。
第二种情况:我们将数据统计的SQL语句整体缓存到缓存表中,后台做一个服务程序定时更新这个表,维持总体统计数据为准实时,这一过程大约每10分钟会更新一次,稍有滞后但是依然能满足实际需求。
第三种情况:我们记录每次更新数据的时间点和结果。新一次查询的时候,由于数据永远处于增量情况,因此我们只需要查出上次时间点到当前的增量数据统计情况合并如上次缓存结果中,同时更新缓存结果到当前时间点即可。这样查询量减少了几个数量级,速度也就有了保障。
3 缓存表设计
db_cache
字段说明:
sql_name插入值的之前要将插入sql语句做处理,防止sql嵌套出现问题。
sql_hash字段为表中的唯一字段,用来检索查询对应的sql语句用。同时保障缓存能被迅速检索到。如果需要就进行数据更新。考虑到如此长的字符串进行哈希重复概率很低,因此可以放心存储。
result_json将查询结果做成Json数据来存储。因为结果数据的结构是不定项,未必只是一个值。可能是各种数据对象。
is_fresh加上是否自动刷新,一旦开启,则后台开启一个服务对数据进行处理。定时进行数据刷新。
alive_time增加缓存数据生存时间,超过时间,则会被清除。
time数据表字段time被定义为记录数据最后修改时间,这样可以方便检验数据的更新情况。
4 后台定时刷新数据机制
(1)定时查询缓存表,清除超过生存时间的缓存数据。
(2)定时查缓存表,把需要刷新的数据sql掉出来,跑一次结果。并更新到缓存数据中。
(3)由于一些特殊的函数中查询出来的结果要求特别处理一
下,例如有些数据要查出来后再统计一次或者只需要一个最后结果。这样既节省了存储空间,也节省了多次重复计算的资源。但是因为这个需要非常个性化,所以我们引入func_name字段进行存储。
(4)大多数需求都不需要个性化处理,所以我们使用php面向对象的魔术方法__call()来简化代码。
mysql数据库范文2
关键词:自动评分系统;MSYQL;数据库
中图分类号:TP311 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02
1 引言
计算机专业是一门应用型的学科,其课程体系注重培养学生利用相关技术解决实际问题的能力,即实践动手能力。然而由于当前教学手段、考核内容、考核方式等原因,常常使得实践能力的考核成为很多计算机专业技术类课程教学效果难以提升的瓶颈。数据库技术是计算机应用专业至关重要的核心课程之一,本文分析基于MYSQL数据库系统平台下的实践考核的基本特点与不利因素,提出了一套切实可行的自动评分方法,取得了一定的成效,促进了课程的教学效果。
具体分析而言,传统的基于MYSQL的数据库课程实践考核存在以下不利因素:
1.1 考核过程效率太低。实践测试需要通过学生实际操作MYSQL系统完成相关的考核要求,而为了了解学生确实的实践能力,教师必须在学生身边观测其全过程,并对结果进行评估。如果一名学生一次考核需要90分钟,一名教师同一时间监督10名学生,则对于一般100人的考核就需要10个批次。这不仅耗费了大量的时间,也降低了实验机房设备的使用率。
1.2 考核内容覆盖面小。实践测试如果采用传统的人工出题、评分的方式,在测试试题的设计时,难免造成试题量较少,测试内容覆盖不全面。如果测试的强度和测试内容覆盖不全面,也必然会导致难以有效的评定学生的实践能力
1.3 评定有失公平。MYSQL数据库实践考核通常在局域网中进行,在考核内容、设备、环境相同的情况下,学生相互抄袭与作弊行为易于实施。例如学生可利用局域网中的文件传输软件实现考核结果的相互传递。
2 基于MYSQL的自动评分系统
根据上述基于MYSQL的数据库课程实践考核传统测试存在的不利因素进行分析,结合实际教学内容与实践环境,提成了一个可行的实践考核自动测评的基本方法,其基本步骤描述如下。
2.1 设计题库及确定考题分值。根据MYSQL数据库课程的相关内容,设计试题库、并确定不同知识点所占的分数比例。①表与数据库的创建(20分);②表结构的修改及索引的创建(20分);③数据操作(10分);④查询及视图(20分);⑤触发器与存储过程的创建(20分);⑥用户与权限管理(10分)。为了有效的利用目前常用的智能组卷策略,题库中试题应包含分值、难度系数、所属章节等属性。同时与笔试(理论)试题设计所不同的是,实践试题的设计需要注意各部分试题的连续性,使得学生的整个实践测试过程是对某一实例应用相关的各个环节进行完整地的设计,突出实践测试的应用能力测试目的。
2.2 设计测试的自动组卷策略。在线自动测评系统的一个重要的功能是实现试卷的智能组卷,以避免试题重复从而导致考试不公行为的出现。目前常用的智能组卷方法主要有随机抽取法、回溯试探法、洗牌算法、最大权法和遗传算法。由于实践测试试题量较小、试题题型单一,为了保证系统能够实现快速组卷、并尽快投入使用以评估系统的性能,我们采用随机抽取法来产生试卷。算法基本过程如下:①根据知识点范围对试题库试题进行编码。最终形成按不同知识点分布的试题整数段。例如表与数据库的创建部分试题编号是从1到30、表结构的修改及索引的创建部分试题编号是从31到70等。②创建列表TestList用于记录试卷中的试题,同时该试题保存于测试学生的考试信息中。③利用随机函数按照不同知识点试题整数的范围产生随机整数进行抽题。首先判断其是否在TestList中,如果是,则重新产生随机整数;如果不在,则判断该知识点题目分值是否达到事先设定,如果满足,则加入TestList。④利用SQL语句获取TestList中的试题,并按照预定格式组织成试卷。
2.3 设计考核基础数据库STM。基础数据库STM是用于考生实践操作的目标数据库,数据库包含用于考核相关试题的数据及其它数据库对象,数据库的设计要充分考虑到对于某一实际应用的各方面考核。STM数据库利用下面MYSQL语句做成备份,考核时由学生在指定的位置下载,或由教师分发。
Mysqldump –uroot –p –l -all-database>STM.sql
2.4 提交考核数据库STM。考生完成试卷所要求的实践操作后,利用指定的MSYQL数据库系统的备份指令,将STM及其日志文件(慢日志)进行备份,并将备份通过考试的WEB界面上传提交,以便进行评分。
2.5 考核评分。考生提交完操作数据库STM及日志文件后。进入考核评分阶段,该阶段分别使用两种策略。
①自动评分。考试服务器根据考生提交的带有考生编号的STM备份文件,可实现计算机自动评分。首先导入考生数据库,然后针对不同考试内容采用不同的评分策略,主要过程是检测MYSQL系统表的记录信息、以及对比操作执行的结果集。评分完毕后将得分存于考生信息中。②人工评分。在考生存在争议或计算机自动评分失的情况下,教师利用学生提交的慢日志文件进行人工评分。根据学生抽取的试题,对比日志中记录的相关SQL语句即可判分。
整个MYSQL数据库实践考核的自动测评过程流程图如下所示:
3 结束语
上述MYSQL数据库的实践考核自动测评系统,能够在很大程度上克服实践考核存在的过程效率低、易作弊以及考核覆盖面窄的问题。在相关课程的上机实践考核过程中,该系统极大的提高了考核效率,同时使得考核过程的更加规范、公平、能力评估的更准确。通过以考促学,获得了良好的教学效果,有效的提升了学生的动手实践能力。
参考文献:
[1]张力.计算机自动评分[J].中国科教创新导刊,2011,13.
[2]杨涛等.《数据库原理》课程教学改革探讨[J].中国科技信息,2011,21.
[3]黄立.全国高校计算机考试机试评分系统方案设计[J].玉林师范学院学报,2006,5.
[4]唐汉明等著.深入浅出MYSQL数据库开发、优化与管理维护[M].人民邮电出版社,2009,3.
[5]金汉均,郑世玉,吴明武.分段随机抽选法在智能组卷中的研究与应用[J].计算机应用研究,2003,20(9).
mysql数据库范文3
[关键词] MySQL 开源数据库 中小企业 应用
当今社会,信息已经成为一种至关重要的资源。为此许多大型企业购进各种大型商业数据库,并基于它们展开一系列的应用。然而这些大型商业数据库价格非常昂贵,对于许多中小型企业来说,过于昂贵的数据库成本,是阻碍各种数据库解决方案进入企业的重要因素。目前,在开放源代码团体的努力下,已经涌现出一些有代表性的优秀开源数据库。这些开源数据库以低廉的成本,适用的功能已经在各种中小企业中得以广泛的应用。MySQL数据库就是其中的典型代表。
一、MySQL开源数据库的特点
1.速度快
据MySQL开发者称,MySQL可能是目前能得到的速度最快的数据库之一。开源数据库之所以速度快,除了技术上的原因之外,还因为精简了一些看来不必要或不常用的功能,这一点对于中小型企业并没有太大影响,却得到了速度上的提升。
2.易用,可移植性好,支持网络应用
相对于Oracle、DB2等大型数据库的复杂设置和管理,MySQL既简单又高效。一般的用户稍加学习就很容易能管理好一个MySQL。MySQL可以运行在各种常见的操作系统中,如Windows、 Unix、Linux、OS/2等。可以方便地将数据库从一个操作系统转移到另一个操作系统,而数据和应用都不需要再做修改。MySQL支持网络应用。用户可以通过网络来访问MySQL的数据库,通过Internet则可以与任何位置的任何人共享数据。
3.支持SQL语言,和其他商业数据库具有一定的共性
SQL(结构化查询语言)是一种所有现代数据库都选用的语言。MySQL很好地支持SQL语言。另外MySQL也支持使用ODBC,这些都使得MySQL和其他商业数据库具有了一定的共性。
4.源代码开放,容易找到技术支持
源代码开放是开源数据库的优势所在。如果不理解某个原理或算法,可以通过直接阅读源码进行分析;如果有不适合本应用的地方,还可以自行修改。关于MySQL可以找到各种各样大量的文档,许多技术问题都可以从中找到答案,各种邮件列表、技术论坛中还会有许多热心人解答所提出的问题。还可以和MySQL开发者签订正式的技术支持合同,通过支付费用来直接得到开发者的技术支持。
5.价格便宜
与商业数据库相比,开源数据库在价格上有明显的优势。以MySQL为例,它对于Unix、Linux等非Windows用户来说是完全免费使用的。如果愿意付费,就能从MySQL开发者那里得到正式的技术支持,这一点对于企业来说会更放心。
二、中小企业对数据库的需求
中小型企业虽然普遍规模不大,但在企业活动中各种信息的交换仍然非常频繁,需要数据库来支持。但中小企业与大企业在对数据库要求上又存在差异,这种差异主要表现在以下几个方面:
1.中小型企业的数据规模小
中小型企业的数据量相对于大型企业是比较小的。对于一个只有GB级数据量要求的企业,选用DB2、Oracle等大型数据库有些浪费。
2.中小型企业对数据库功能的要求不同于大型企业
虽然数据库的功能越丰富越好,但是对于中小型企业来说,大型数据库提供的各种相关功能,并不是都用得上。另一方面,中小型企业也需要数据库能尽可能多地提供一些功能,而不是一味地简单。 例如,中小型企业不要求一些大型数据库的自带集成开发环境和工具,但也要求数据库能够支持多种开发语言和工具,以便企业灵活地开发自己所需的各种应用。
3.更关注成本
中小型企业的资金远不如大型企业雄厚,特别是一些小企业,成本往往是关键因素,所以中小型企业希望所用的数据库有良好的性价比。
4.适度的安全性
中小型企业要求有适度的安全性,除非特殊的行业,否则不必对安全性要求太苛刻。适度的安全性对于中小型企业来说已经足够。
三、MySQL开源数据库在中小企业应用实例
MySQL是一个可用于多种操作系统的关系数据库系统,是一个具有客户机/服务器体系结构的分布式数据库管理系统,适用于网络,可在Internet上共享数据库。MySQL已经具备相当的成熟度。对于中小型企业,这是个不错的选择。
下面以一个小型公司为例,来看看开源数据库是如何在中小型企业中得到应用的。
某公司,经营范围是货物。下属3家分公司,在职员工有19位。至今营业已4年有余,每年营业额2500万元左右。该公司发展过程中,曾经多次考虑开发信息管理系统,并建立公司网站,但是商用数据库的价格实在太高,所以一直没有实现。一年前,公司选择了MySQL做为自己的数据库,并建立了信息管理系统和网站,整个应用结构如下图所示:
从图中可以看出,整个应用都是采用浏览器/服务器(B/S)结构进行开发的。作为整个应用中心的数据库直接放在Internet的一台虚拟主机上,MySQL的网络特性使得用户可以通过Internet在任何地方共享数据库。
信息管理系统面向公司内部员工和管理者提供对人员、设备、服务、财务及各项活动实施的、全面的动态智能化管理。 包括:人员管理、合同管理、财务管理、货物管理和客户关系管理等多个功能模块。 企业网站主要面向客户提供业内动态、企业新闻、网上答疑等信息。
整个应用,除采用开源数据库MySQL之外, Web服务选用Apache,开发语言选用PHP,所有这些都是免费的,因此公司用了很小的投入就建立了自己的应用,满足了自己的需求。
四、结束语
费用低且性能佳的开源数据库使得中小型企业使用数据库成为可能。在引入数据库后,又会在使用过程中不断地发展新应用,从而推动企业的信息化进程。我们相信,随着开源数据库在功能上的日益强大和完善,以及人们对其了解的深入,开源数据库在中小型企业中将会有更广泛和深入的应用。
参考文献:
[1]Petersen P. Liux Complete Reference(The Third Edition)[M].McGraw-hill,1999
mysql数据库范文4
关键词:商务系统设计;交互式WEB技术;WEB数据库
随着计算机网络技术和通信技术的高速发展,Internet带来的电子贸易正改变着现今商业活动的传统模式,WEB站点已成为中小企业展现自我、直接面向客户的窗口。计算机技术、网络技术与数据库技术发展相结合,利用基于数据库的交互式WEB商务系统已成为企业发展电子商务、开辟国际市场、创造新的营销方式、参与大企业、跨国公司竞争及企业和客户在全球范围内的信息交换提供了快捷途径。创建高效的WEB商务系统也日益成为中小企业的战略目标。
一、Linux平台Apache、PHP、MySQLWEB商务系统平台优势
Linux、MySQL、Apache和PHP都具有开放源码、免费的特点。Linux是一个遵循POSIX(PortableOperatingSystemInterface)标准的开放源码的操作系统,具有安全、稳定和移植性好,并有丰富的软件支持和强大的网络功能。MySQL是一种快速的多用户、多线索化并具有丰富结构化查询语言(SQL)的关系数据库系统。Apache是目前世界排名第一的WEB服务器。Apache是免费的,源代码是公开的,用户可以修改、编译自己的Apache。PHP是GUN标准的自由软件,它以其速度快、跨平台、安全、易学等特点越来越显示出它的优越性。由以上特点可见,PHP与Apache、MySQL在Linux平台上,具有较高的性价比,号称“黄金组合”,在WEB商务系统平台的搭建中具有其独有优势。
二、Linux平台Apache、PHP、MySQL的动态WEB数据库系统工作原理
基于Linux下的Apache、PHP、MySQL的动态WEB数据库系统,是在Linux操作系统环境下,以Apache为WWW服务器,以MySQL为WEB数据库,采用TCP/IP技术,以HTTP作为传输协议,客户端浏览器通过HTML访问Apache服务器,Apache服务器调用并执行服务器端PHP程序,PHP程序执行SQL语言操作MySQL数据库,同时返回查询结果,PHP从MySQL数据库中取得数据后,按照文件要求,生成HTML页面交给Apache服务器,最后客户端浏览器将HTML文件解释执行并显示出来。它是一种典型的B/W/D(浏览器/WEB服务器/数据库服务器)三层体系结构。在这种B/W/D三层体系结构中,客户端通过浏览器提交信息给WEB服务器,WEB服务器再通过WEB服务器端的PHP嵌入式脚本语言与MySQL数据库进行数据交换,通过标准SQL语言对数据库进行数据操作,在将处理完毕的数据通过PHP嵌入式脚本语言返回给客户端,再通过浏览器解析执行。在这种动态交互式WEB数据库应用系统中,PHP语言在以Apache为WEB服务器端运行,在ApacheWEB服务器将信息发到客户端之前,PHP脚本由ApacheWEB服务器解释执行,再发送到客户端浏览器。
三、WEB数据库商务系统的系统设计
(一)WEB数据库商务系统开发的三层设计模型
本系统采用Liunx平台下Apache、PHP、MySQL进行WEB数据库商务系统设计,整体架构使用Web应用开发的三层设计模型,系统划分为用户界面层、业务逻辑层、数据访问层,这样有利于系统的开发、维护和扩展,三层的功能如下:
第一,用户界面层。用户界面层用来实现顾客浏览器中显示商品信息用户界面。该层以适当的形式显示由业务逻辑层动态传送的数据信息,这个功能要通过使用相应的HTML标记和CSS模式来实现。应用表达层为最终用户提供界面,同时它也是系统接受用户的请求的接口。
第二,业务逻辑层。业务逻辑层是整个分层模型的中间层,也是整个分层模型中最为重要的层。这一层为用户界面层提供功能调用,同时它又调用数据访问层所提供的功能访问数据库。
第三,数据访问层。数据访问层是整个分层体系的最底层,它主要用来实现与数据库的交互,即完成查询、插入、删除和修改数据库中数据的功能。数据访问层为业务逻辑层提供服务,根据业务逻辑层的要求从数据库中提取数据或者修改数据库中的数据。
(二)WEB数据库商务系统数据流设计
为了完成顾客订购商品、定货处理、库存管理和发货,设计数据流图如图1所示。
四、WEB数据库商务系统网站结构设计
本系统采用Apache、PHP、MySQL构架,从系统功能上分WEB数据库商务系统外部功能设计和WEB数据库商务系统内部管理系统功能设计。
(一)WEB数据库商务系统外部功能设计
WEB外部商务网站采用PHP、MySQL开发,设计友好的用户界面面,提供以下功能:
1、提供电子目录:电子目录中包括商品信息和同类产品的比较信息,帮助客户搜索、发现需要的商品;并进行比较,帮助客户进行购买决策。
2、商品的评估:客户对已购买商品的评价信息。
3、购物车:应用于客户的在线购买功能,客户可以暂时将商品放入购物车,同时也可删除或更改购买的数量。
4、客户订单:客户和相关信息及购买商品的相关信息。
5、商品:是否已客户订购商品的信息,并告知客户。
6、售后信息:主要是客户选购产品的结算信息、订单的状态及售后服务。
(二)WEB数据库商务系统内部管理系统功能设计
WEB内部管理系统也PHP、MySQL开发,提供高效率的信息处理功能如下:检查客户的注册信息;处理客户订单;商品库存管理;能够跟踪产品销售情况;能够和物流配送系统建立接口;和银行之间建立接口;实现客户关系管理。
(三)系统的构成,可以将WEB数据库商务系统分成以下三个子系统
商品管理子系统:商品信息管理、;交易子系统:处理订单、支付;客户管理或客户关系管理子系统。
五、WEB数据库商务系统数据库设计
WEB数据库商务系统采用MySQL关系型数据库,库中主要包含以下表:客户注册信息表:存放客户信息;商品目录表:用来存放目录名,以及目录所在的位置;商品数据表:用来存放商品信息,包括商品编号、名称、规格、价格、描述信息等;连接表:用来存放商品品与目录之间的关系;购物车数据表:用来存放客户购物车中商品的清单及数量、价格及客户购物的状态;业务员信表:用于存放业务员的信息。
六、结束语
本文介绍了一种比较适合于中小企业的WEB数据库商务系统开发架构的设计方案,采用Apache、PHP、MySQL组合,在Linux平台下搭建经济、稳定、安全、快速、高效的交互式WEB数据库商务系统。系统重点介绍了Linux平台下Apache、PHP、MySQL的动态WEB数据库系统工作原理、系统设计、网站结构设计、数据库设计。为我国中小企业,在资金短缺的状况下,搭建中小企业WEB商务系统、开展电子商务提供一个比较理想的设计方案。
参考文献:
1、郭健.战PHP[M].民邮电出版社,2000.
2、薛军超.MySQL网络数据库开发[M].民邮电出版社,2001.
3、刘志勇.Linux+PHP+MySQL案例教程[M].科多媒体电子出版社,2006.
4、余韶霞.基于JSP技术的电子商务网站设计与开发[J].
5、(美)JayGreenspanBradBulger.MyS-
QL/PHPDatabaseApplications[J].HungryMinds,Inc.,2001(9).
6、刘军,董宝田.电子商务系统的分析与设计[M].高等教育出版社,2003.
mysql数据库范文5
关键词:infobright;MySql整合;数据仓库;高数据压缩比
一、技术概况
Infobright进行复杂的查询时,通过其专利的知识网格(Knowledge Grid)和综合优化技术,能够实现优异的性能表现。数据在导入Infobright之后将被高度压缩并以“数据块 (Data Pack)”的形式存储,于此同时,知识网格会自动创建一个非常紧凑的元数据,其中包含了统计数据和数据块之间的关系信息。因此当接收到查询时,Infobright查询优化器可以通过元数据智能的决定哪些数据块与查询请求相关,并将之解压。基于知识网格技术,Infobright不需要专门对数据进行划分,也不需要建立索引,从而节省查询处理时间,提升响应速度。
基于列的数据架构 Infobright实施、管理非常简便,不需要人工调试、数据分区和创建索引,有效的降低了管理成本,此外Infobright不需要运行在特殊的专用硬件上,同时它的数据压缩比很高(10:1—40:1),比任何其他数据仓库系统对存储设备的占用都小。这些特性让Infobright为企业IT部门降低了预算上的负担。
二、功能
Infobright 企业版——分析型高性能数据仓库
在随时在线的今天,需要进行业务分析的数据规模惊人增长。商业决策需依托海量数据的实时访问,企业才能保证正确方向。
Infobright是一个基于独特的专利知识网格技术的列式数据库,能够降低您90%的管理工作量。使用Infobright不需要创建特殊的数据库模式,无需创建和维护索引,无需对数据进行分区,甚至不需要手动调整,知识网格就会在原始数据导入时,自动创建和维护数据,并用以优化每一个查询。在一台PC服务器上,Infobright企业版在对50TB甚至更多数据量进行多并发复杂查询时,能够显示出令人惊叹的速度,相比于MySQL,其查询速度提升了数倍甚至数十倍。在同类产品中,Infobright的单机性能处于领先地位。
三、高数据压缩比
1.行业领先的数据压缩技术
如果您的系统数据量每天都在快速增长,受限于磁盘的容量与传输速率,您进行备份的成本与时间将快速增加,直至您无法承受。幸运的是,软件技术的发展速度超越了磁盘数据传输技术的发展速度,Infobright可以将数据以10:1至40:1的比率压缩,通过知识网格与列式架构的结合,极大的提升了查询响应速度,并降低了存储成本。通过列式架构和超压缩算法,10TB的原始数据在Infobright中将被压缩至1TB,对某些类型的数据,最高可以达到40:1的压缩率。并且Infobright压缩的速度非常快,目前已经可以以每小时1TB甚至更快的速度向Infobright导入数据,从而让您的数据仓库系统接近“实时”工作的状态。
如果您的企业正苦于应对剧增的数据规模、增长的客户需求以及较高的用户期望,同时优化IT投入,Infobright先进的数据库技术就可能帮助到您。让您的IT团队能专注于快速完成业务交付而非基础架构,才能创造更大商业价值。
2.MySql整合
(1)与MySql整合
Infobright是基于MySQL开发的分析型数据库,MySQL原有用户可以通过Infobright得到理想的数据仓库解决方案,它使用MySQL用户熟悉的界面,对基于MySQL开发的应用不需要进行改动,就可以无缝升级到Infobright。与MySQL相兼容的BI工具及ETL工具,Infobright都能完美支持。
三、技术特性
SQL支持 全面支持ANSI SQL-92标准和SQL-99扩展标准中VIEW和存储过程的部分
1.灵活的schema支持。支持所有schema设计;
2.行业标准接口。
支持标准数据库接口,包括ODBC、JDBC和本地连接;
3.API接口支持 支持的API接口包括C、C++、C#、Borland Delphi (via dbExpress)、 Eiffeel、SmallTalk、 Java (with a native Java driver implementation), Lisp, Perl, PHP, Python, Ruby, REALbasic, FreeBasic, and Tcl;
4.DML支持。支持DML语句(Insert、Update、Delete);
5.并发用户数。支持至多500个数据库用户,32个并发查询(视CPU核心数与内存大小而定);
6.操作系统支持。Windows Server 2003/2008 (64-bit, 32-bit), Solaris 10 (64-bit), Red Hat Enterprise Linux 5 (64-bit),Novell SUSE Linux Enterprise 10, Red Hat Enterprise Linux 5 Advanced Server (64-bit),Debian ‘Lenny’ (64-bit), or CentOS 5.2 (64-bit)
7.处理器支持。最少4G内存的Intel和AMD x86架构服务器(建议16G内存或更多)
8.数据导入方式支持。Infobright企业版支持两种数据导入方式。通过文本方式向MySQL中导入,或通过文本和二进制文件的方式向Infobright中导入(最高280GB/小时)。
2.在线分析
无论您的公司是在线广告网络,零售商,手机广告服务提供商或是任何其他的制造业,分析的重要性都与与日俱增,了解您网站的性能、您的客户的访问行为、评估广告和营销活动的效果,并分析成功与失败之间的差异,这能够让您企业与竞争对手拉开差距,取得最终的胜利。而这需要您对来自网页和离线方式的大量数据进行有效的利用,Infobright让您能够用低成本的方式轻松获得这种能力,相比与其他类似的方案,Infobright的成本低廉,管理简便,降低了您获得竞争优势的门槛。
3.数据集市(Data Mart)
数据集市通常定义为包含特定应用分析的数据仓库, 其分析应用与用户的业务紧耦合,具有较强的专业特性,因此通常针对集团内部某个特定的部门建设。在过去几年里,数据集市系统的实施数量快速增长,这种增长是由商业用户快速查询的需求驱动的。
过去数据集市项目由集团的IT部门统一实施,而现在,越来越多的集团内部用户部门自行实施数据集市项目,并由内部IT经理担任实施负责人,以确保数据集市的功能与需求吻合。
四、Infobright几大优点:
1.高压缩比率,平均压缩比可达10:1,甚至可以达到40:1,我用infobright把3.1G的数据存成不足300M。
2.列存储,即使数据量十分巨大,查询速度也很快。用于数据仓库,处理海量数据没一套可不行。
3.不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内的统计信息,代替索引,加速搜索。
4.单一台服务器可以高效地读写30T数据。具有可扩展性,这里是指对于同样的查询,当数据量是10T时,它耗费的时间不应该比1T数据量时慢太 多,基本是一个数量级内。
与mysql对比:
1.infobright适用于数据仓库场合,即非事务、非实时、非多并发;分析为主;存放既定的事实(基本不会再变),例如日志,或汇总的大量的 数据。所以它并不适合于应对来自网站用户的请求。实际上它取一条记录比mysql要慢很多,但它取100W条记录会比mysql快。
2.mysql的总数据文件占用空间通常会比实际数据多,因为它还有索引。infobright的压缩能力很强大,按列按不同类型的数据来压缩。
3.服务形式与接口跟mysql一致,可以用类似mysql的方式启用infobright服务,然后原来连接mysql的应用程序都可以以类似的 方式连接与查询infobright。这对熟练mysql者来说是个福音,学习成本基本为0。
infobright有两个版:开源的ICE及闭源商用的IEE。ICE提供了足够用的功能,但不能 INSERT,DELETE,UPDATE,只能LOAD DATA INFILE。IEE除提供更充分的功能外,据说查询速度也要更快。
五、不足之处
不支持数据更新:社区版Infobright只能使用“LOAD DATA INFILE”的方式导入数据,不支持INSERT、UPDATE、DELETE
不支持高并发:只能支持10多个并发查询
参考文献:
[1]blog.s135.com/infobright/
mysql数据库范文6
关键词:JSP JDBC MTSQL
中图分类号:TP392 文献标识码:A 文章编号:1007-9416(2012)11-0173-01
1、引言
JSP是当今比较流行的动态网页开发技术。JSP技术是用Java语言作为脚本语言,在传统的HTML文件中加入Java代码(Scriptlet)和JSP的一些标记(tag),这样就生成了JSP的动态网页。不仅如此,JSP还能够在servlet和JavaBean的技术支持下,开发出功能强大的动态网站。就动态网站而言,数据库的支持将是该系统中最重要的部分,对网站的更新性和交互性将起到决定性的作用。MySQL是现在流行的关系数据库中的一种,它是真正意义上的多线程、多用户的SQL数据库服务器,发展到今天为止,已经有非常多的用户在使用这种数据库。和其他的数据库管理系统(DBMS)相比,它的优点非常明显,不仅小巧,而且功能齐全,查询也非常方便,对于一般中小型,甚至大型的应用软件开发,mySQL都能得心应手。
使用JDBC驱动程序访问MySQL数据库已经是JSP开发中非常重要的工作,本文以MYSQL为例,实现JSP对数据库的访问。
2、利用专用JDBC驱动程序连接数据库MYSQL
要在JSP页面中访问数据库的方法有很多,但现在使用最常见的连接方法是采用JDBC驱动程序来连接数据库。
JDBC是一种JavaAPI,用于执行SQL语句,它通常由一些采用用Java语言编写的接口和类构成,JDBC提供了一些标准的应用程序设计接口,使得软件开发人员能够使用纯Java API来编写数据库应用的相关程序。通俗地讲,JDBC就是能够做三件事:建立数据库的连接、传送sql语句并处理结果,由于很多数据库都具有标准的JDBC驱动程序,因此JSP程序就可以直接通过JDBC驱动程序连接到相关数据库中,执行各种查询、提取各种数据等工作。
在编写数据库应用程序之前,首先需要找到所需要连接的数据库的驱动程序,MySQL的驱动程序称为Connector/J,可以在MySQL的官方网站上下载,网址为:。
连接到数据库MySQL的代码段为:
......
Connection conn=null;
try
{ //装载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//创建连接
String Conn="jdbc.mysql.://127.0.0.1:3306/jsp_db ";//jsp_db是你要连接到的数据库名称
String User="root";//和你建立的数据库连接自己的用户名设置一致
String password="root";//根据你自己设置的数据库连接密码进行设置
conn=DriverManager.getConnection(Conn,user,password);
out.print("JDBC专用驱动程序连接数据库成功!");
}
catch(Exception e)
{ out.println("JDBC专用驱动程序连接数据库失败!");}
......
测试中如看到“JDBC专用驱动程序连接数据库成功!”的字样,则表示JDBC专用驱动程序连接数据库成功。
3、插入汉字到数据库MySQL时乱码的处理
在编写数据库应用程序的问题,往往会遇到中文问题。由于字符编码的原因,插入或修改数据到数据库时,汉字会变为“?”,可以通过以下方法解决此问题。
连接mysql时(无论在从mysql读还是存数据的情况),指定使用的编码方式为gb2312,具体代码为:
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root
&password=1&useUnicode=true&characterEncoding=gb2312" );
如果采用上述方法还不能解决问题的话,那么就需要在刚才处理的基础上强制进行编码方式转换读入的字符串。
语句格式如下所示:
String name_message = rst.getString("name_message"); name_message= new String(name.getBytes("ISO-8859-1"),"gb2312");
另外:上述代码作用也等同于:String name_message =new String( rst.getString("name_message").getBytes("ISO-8859-1"),"gb2312"));其中rst为返回的resultset,ISO-8859-1为mysql默认的编码方式,这条语句的作用是将用ISO-8859-1的编码方式转换为gb2312的编码方式,采取这种形式人为的进行强制转换,也能够解决相当部分的问题,总之,这两个方法结合起来使用,基本上能够解决插入汉字出现乱码的情况。