《校友信息管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《校友信息管理系统的设计与实现.doc(54页珍藏版)》请在三一办公上搜索。
1、本 科 毕 业 论 文校友信息管理系统的设计与实现指 导 老 师 : 学 生 姓 名 : 学 号 : 院 系 :网络教育学院专 业 :计算机机科学与技术毕 业 时 间 : 毕 业 论 文 任 务 书1.收集资料:针对选题收集有关资料。通过学校图书馆、相关网站和专业书籍,利用电子阅览室的网络资源等途径搜集有关资料,并对相关资料进行系统的整理、分析、归纳 。 2.要求方面:系统要求实现学校范围内校友信息的管理、检索、添加和统计管理等功能。通过PHP、MYSQL编程环境完成系统的编写。 3.内容方面: 1绪论 2数据库的理论基础 3开发工具与开发语言介绍 4需求分析 5系统各模块的实现 6系统的测试
2、 摘要随着互联网的发展,网络信息资源也不断的丰富,而以动态性和交互性为特征的网络信息管理是当中最丰富、最开放和最自由的网络信息资源,是最受欢迎的一种信息交流方式。目前实现网络信息管理功能的开发语言多种多样,主要有PHP、JSP、ASP和ASP.NET,其中PHP借助于开源的优势势必将成为网络开发的必然趋势。以前,学校的校友信息管理基本上是靠手工进行。如今,随着学校的规模增大,有关已经工作的校友信息管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行校友信息管理。但手工管理具有效率底、易出错、检索信息慢、对学校的管理提供决策信息较为困难等缺点。因此,使用效率更高的方式来处理这些数
3、据就更显得重要了。本文就该系统进行分析和整体的介绍,并介绍了使用PHP + MYQSL技术开发该系统的相关模块的整个过程。该系统主要利用了PHP强大的网络数据库访问技术,与MYSQL的强大的数据库功能来实现主要功能。系统设计并实现了校友基本信息管理,包括对校友信息的查询、录入、修改和删除关键词: PHP,MySQL,网络数据库访问技术,管理The Research and Implementation of PE Documentary Virus base on Win32 PlatformAbstractWith the development of the Internet, netwo
4、rk information resources is constantly enriched, but to be a dynamic and interactive information management for the characteristics of the network is among the richest and most open and free network information resources, is the most popular way of information exchange. The current implementation in
5、formation management of the network feature of development languages is multiplicity, mainly PHP, JSP, ASP and ASP.NET, PHP with the help of the open source advantage is bound to become an inevitable trend of Internet development. Previously, alumni information management is basically by hand. Nowad
6、ays, with the school scale increases, data volume involved in the alumni information management work becomes bigger and bigger. Some schools have to increase more manpower and material resources for better information management. However, the manual management has several shortcomings such as low ef
7、ficiency, error-prone, slow retrieval of information, decision-making information more difficult to provide and so on. Therefore, using high efficiency ways of dealing with these data is particularly important. This article is to introduce and analyze the information management system. It decribes t
8、he whole process of using the PHP+MySQL technology to develop the related modules. The system has mainly used the PHP formidable network database access technology and the MYSQL formidable database function to realizes the students basic information management, including the query, recorded, modify
9、and delete functions for alumnis information. Keywords:PHP, MySQL, network database access technology,Management目录摘要IABSTRACT2目录3第一章 绪论11.1 课程设计的背景11.2 课题设计的目的和意义21.3 系统设计方案3第二章 数据库的理论基础52.1 MYSQL数据库基本介绍52.1.1 名称简介52.1.2 自身特性52.1.3 应用环境62.1.4 管理软件62.1.5 存储引擎62.1.6 应用架构72.1.7 索引文件72.1.8 文件优化102.1.9 M
10、YSQL-安装注意112.2 MYSQL数据库技术112.2.1速度快112.2.2连接性和安全性122.2.3可移植性122.2.4它支持SQL语言122.2.5容易使用122.2.6成本优势12第三章 开发工具与开发语言介绍133.1开发工具介绍133.2 PHP,Apache,phpMyAdmin介绍143.2.1 PHP简介143.2.2 PHP特性153.2.3 Apache简介173.2.4 phpMyAdmin简介21第四章 需求分析224.1 系统的运行环境224.1.1硬件需求224.1.2 软件需求224.2 系统需求分析224.3 系统模块划分234.4系统数据库设计规范
11、和存储说明23第五章 系统各模块的实现265.1 服务器的设置265.2 设置数据库265.2.1 创建数据库和数据表265.2.2 数据库的连接285.2.3 创建数据源285.2.4 常用的数据库命令295.3 系统开发思想及设计原则305.3.1 系统开发思想305.3.2 系统开发的设计原则315.4 系统功能实现315.4.1 系统首页315.4.2 系统登录前335.4.3 系统登录345.4.4 添加校友信息375.4.5 查询模块405.4.6 校友信息修改425.4.7 校友信息查看425.4.8 校友信息删除435.4.9 注销登录43第六章 系统的测试45第七章 设计总结
12、与体会47致谢48第一章 绪论在绪论中,主要介绍了为什么要选择这个课程设计,选择这个课程设计的意义在哪里。同时,还介绍在这个课程设计的方案,包括实现的一种形式及其主体部分。在生活景况不断提升的情况下,人类对知识文化的追求也不断地提升,同时也影响了整个社会经济、技术地不断提升。在一拨又一拨的学生从校园走出去时,学校的档案室中不断地累积他们的记录,给学校带来了无比重大的负担,为了不放下这些负担的同时解决好,我们借用了网络这个平台,去实现网络存储校友信息,芯片管理信息。1.1 课程设计的背景在电子计算机技术发展日新月异的今天,计算机技术、网络技术和信息技术的发展和应用早已深入到了各行各业,并发挥着它
13、们的巨大潜力,特别是网络的高速化、广泛化发展和运用,更使得人类在任何行业都借用这个平台去管理远方的信息。当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用真正原因所在,并且计算机给信息管理系统提供了一个良好的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了安全性。当前国内外人员管理信息较大,工作繁琐,管理模式还不够完善。究其原因在于没有一个良好的管理系统。使用计算机管理能够便于管理决策人员迅速掌握情况,加快人员管理工作的现代化进程。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。该系统就是为了管理
14、好院校校友信息而设计的。作为一个有着悠久的历史老校或者刚刚崛起的新校,都有着一个共同点管理学生信息,管理老师信息,管理已毕业离校在外的校友信息。这所有的信息都不能丢失,而且还要保护它的完整性。仅仅是手工管理的话,难免会出现信息丢失,或者信息毁灭的现象。如果出现一种完善的管理系统,那么这所有的信息都将被一一记载,不丢失、不毁灭,永远存储在一个简单的硬件壳里。在庞大信息处理面前,手工操作是可以,但将会浪费很多的人力、物力以及财力,而且手工操作比较容易出错,又不易查找。如果将信息存储在一个记忆器里,用一个系统不停地将它存进或者取出,更或者是修改、删除,那将是一个简单的操作,不仅节约时间,更节约了人力
15、、物力和财力。所以,在信息处理面前,我们要有一个规范的管理手段,那就是完善的管理系统。计算机出现的年代已很久,但真正被用于处理各种各样的信息却有了不少的限制。如今经济发展了,科技随着发展了,经济又进一步再发展了,人们对信息处理有了更高的要求,一不希望累了自己,二不希望该留的信息突然消失、难于查询。所以如今的计算机将被广泛利用起来,发挥它真正的效力,不再被闲置一旁。编辑好一个管理系统,装载在计算机中,不断地运行,不断地操作,不断地存储,将该存的存,该改的改,该删的删,该提取出来的提取出来。校友信息管理系统是计算机技术和网络技术迅速发展的一个高校办公应用解决方案。高校校友信息管理系统将网络技术与现
16、代管理观念相融合,针对信息技术的特点对办公系统进行规划和重构,对内部信息流进行优化和合理的配置,生成动态的、安全的、专有的数字化信息源,将办公体系全面自动化、流程化、数字化。以此桥梁,横向连接校友间的感情交流与知识学习,纵向实现高校一体化的高效办公系统,从而更明确、更有效地支持高校的管理和决策。由此,建立一个校友信息管理系统成了一个高校的必要,这样将使得校友信息管理工作规范化、系统化、程序化、简约化、远距离传输化,避免了校友信息更新不及时,提高了信息处理的速度和准确性,能够及时、准确、有效地查询和修改、存储校友信息现状。1.2 课题设计的目的和意义随着人类的发展、科学技术的提升,信息的收集也在
17、一步一步地往简单易化中行进。网络成了现代人远距离收集信息的最有效、最方便、最迅速的媒介。作为一个高校,每年都会有新生进毕业生出的现象。一旦毕业生走出校门,要想一直保留着有效信息是一件费时间、人力、物力的事情。那么,出现一个管理系统随时随地都可以记录个人有效信息成了一种必然。由嵌入HTML中的语言PHP加MySQL所开发出来的信息管理系统正符合学校的这种需求。只要每一个曾经在此学校就读过的学生登陆学校网站,链接进入“校友管理系统”,便可快速、有效地记录、修改、查询个人信息。同时,根据用户的不同需求,能够准确、迅速地找到与之匹配的校友,给校友间保持友谊提供了一个很好的平台。具有一定的应用价值。校友
18、管理信息是对校友进行有效管理、正确决策的重要依据,将校友管理系统内的各种数据加以收集处理后获得的校友管理信息,可用于校友管理部门对系统的诸多因数进行调节,达到优化管理进程、提高信息管理水平,保证校友管理协调,达到高效运转的目的。校友信息管理过程是管理人员和校友共同参与的过程,校友管理信息涉及到从管理人员到教师、在校学生、刚毕业离校学生、已工作多年的远方校友整个发展的各种信息。信息收集与使用的难度大是高校实现信息化管理的重点和难点。高效而准确的校友信息管理是提高高校办学质量、实现高校信息管理一体化所必不可缺少的重要手段,教育部颁发与实施的本科教学水平评估工作对校友管理信息化工作提出了更高的要求;
19、建立以信息技术与数据库技术为基础的校友管理信息系对于规范管理过程,实现各种校友自由流动过程信息的快速攫取、查询、避免人为统计出现的偏差与信息丢失、提高校友信息管理的质量与效率、满足本科教学水平评估的要求具有重要意义。对于普通高校来说,利用计算机支持学校高效率完成校友信息管理的日常事务,是适应现代化信息管理的要求,推动学校管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大地提高校友信息管理的效率,也是学校信息管理的科学化、正规化,与世界接轨的重要条件。1.3 系统设计方案因为借用了PHP、MySQL、A
20、pache这些免费工具所设计处理具有动态性、高效性、安全性的网络平台,可以实现的功能主要包括查询校友信息、添加或者插入校友信息、修改校友信息、删除校友信息等。根据所设想的功能,可以得出校友信息管理系统流程图:开始管理员登陆检查密码检查密码管理员界面添加修改删除查询用户登陆用户界面个人添加个人修改个人删除个人查询结束第二章 数据库的理论基础2.1 MYSQL数据库基本介绍MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用
21、在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.1.1 名称简介MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。 MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带
22、有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的MontyWidenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。 MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。2.1.2 自身特性1.使用C和
23、C+编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。3.为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4.支持多线程,充分利用CPU资源。5.优化的SQL查询算法,有效地提高查询速度。6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 23
24、12、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。8.提供用于管理、检查、优化数据库操作的管理工具。9.可以处理拥有上千万条记录的大型数据库。2.1.3 应用环境与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。目前I
25、nternet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。2.1.4 管理软件可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。phpMyAdmin是由php写成的
26、MySQL资料库系统管理程式,让管理者可用Web界面管理MySQL资料库。phpMyBackupPro也是由PHP写成的,可以透过Web界面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。另外,还有其他的GUI管理工具,例如早先的mysql-front 以及 ems mysql manager,navicat 等等。2.1.5 存储引擎MyISAM Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务。InnoDB 事务型数据库的首选引擎,支持ACID事务,支持行级锁定。BDB 源自Berkeley DB,事务型数据库的另
27、一种选择,支持COMMIT和ROLLBACK等其他事务特性。Memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失。Merge 将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用。Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差。Federated 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用。Cluster/NDB 高冗余的存储引擎,用多台数据机器联合
28、提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。CSV 逻辑上由逗号分割数据的存储引擎。BlackHole 黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继。EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。 同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。另外,Mysql的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己的存储引擎。2.1.6 应用架构单点(Single),适合小规模应用。复制(Replication),适合中小规模应用。集群
29、(Cluster),适合大规模应用。Mysql架构及应用。MySQL4.1版本中增加了不少新的性能,包括对主键的更高速度的缓存,对子查询的更好的支持,以及应网络约会网站所要求的,基于地理信息的查询。其同步开发的5.0版本则把目标对准了企业用户,对于4.1版本中的所有新特性,5.0版本悉数收入囊中,并且独具以下特点:对外键的良好支持;系统自动报错机制以及对存储过程的充分支持。2.1.7 索引文件索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必
30、须刷新一次。为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数
31、限制为16个。1、InnoDB数据表的索引与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。“数据行级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT、LOCKINSHAREMODE、SELECT、FORUPDATE命令以及INSERT、UPDATE和DELETE命令。出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制
32、只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。2、限制 如果WHERE子句的查询条件里有不等号(WHEREcoloum!=),MySQL将无法使用索引。类似地,如果WHERE子句的查询条件里使用了函数(WHEREDAY(column)=),MySQL也将无法使用索引。在JOIN操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引。如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKEabc%,MySQL将使用索引;如果查询条件是
33、LIKE%abc,MySQL将不使用索引。在ORDERBY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDERBY方面也没什么作用)。如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如“0/1”或“Y/N”等值,就没有必要为它创建一个索引。MySQL普通索引、唯一索引和主索引1、普通索引普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排
34、序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。2、唯一索引普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里
35、出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。3、主索引在前面已经反复多次强调过:必须为主键字段创建一个索引,这个索引就是所谓的“主索引”。主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE。4、外键索引如果为某个外键字段定义了一个外键约束条件,MySQL就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。5、复合索引索引可以覆盖多个数据列,如像INDEX(columnA,columnB)索引。
36、这种索引的特点是MySQL可以有选择地使用一个这样的索引。如果查询操作只需要用到columnA数据列上的一个索引,就可以使用复合索引INDEX(columnA,columnB)。不过,这种用法仅适用于在复合索引中排列在前的数据列组合。比如说,INDEX(A,B,C)可以当做A或(A,B)的索引来使用,但不能当做B、C或(B,C)的索引来使用。6、索引的长度在为CHAR和VARCHAR类型的数据列定义索引时,可以把索引的长度限制为一个给定的字符个数(这个数字必须小于这个字段所允许的最大字符个数)。这么做的好处是可以生成一个尺寸比较小、检索速度却比较快的索引文件。在绝大多数应用里,数据库中的字符串
37、数据大都以各种各样的名字为主,把索引的长度设置为1015个字符已经足以把搜索范围缩小到很少的几条数据记录了。在为BLOB和TEXT类型的数据列创建索引时,必须对索引的长度做出限制;MySQL所允许的最大索引全文索引文本字段上的普通索引只能加快对出现在字段内容最前面的字符串(也就是字段内容开头的字符)进行检索操作。如果字段里存放的是由几个、甚至是多个单词构成的较大段文字,普通索引就没什么作用了。这种检索往往以的形式出现,这对MySQL来说很复杂,如果需要处理的数据量很大,响应时间就会很长。这类场合正是全文索引(full-textindex)可以大显身手的地方。在生成这种类型的索引时,MySQL将
38、把在文本中出现的所有单词创建为一份清单,查询操作将根据这份清单去检索有关的数据记录。全文索引即可以随数据表一同创建,也可以等日后有必要时再使用下面这条命令添加:ALTERTABLEtablenameADDFULLTEXT(column1,column2)有了全文索引,就可以用SELECT查询命令去检索那些包含着一个或多个给定单词的数据记录了。下面是这类查询命令的基本语法:SELECT*FROMtablenameWHEREMATCH(column1,column2)AGAINST(word1,word2,word3)上面这条命令将把column1和column2字段里有word1、word2和w
39、ord3的数据记录全部查询出来。注解:InnoDB数据表不支持全文索引。2.1.8 文件优化查询和索引的优化:只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快-不管有没有使用索引。只有当数据库里的记录超过了1000条、数据总量也超过了MySQL服务器上的内存总量时,数据库的性能测试结果才有意义。在不确定应该在哪些数据列上创建索引的时候,人们从EXPLAINSELECT命令那里往往可以获得一些帮助。这其实只是简单地给一条普通的SELECT命令
40、加一个EXPLAIN关键字作为前缀而已。有了这个关键字,MySQL将不是去执行那条SELECT命令,而是去对它进行分析。MySQL将以表格的形式把查询的执行过程和用到的索引等信息列出来。在EXPLAIN命令的输出结果里,第1列是从数据库读取的数据表的名字,它们按被读取的先后顺序排列。type列指定了本数据表与其它数据表之间的关联关系(JOIN)。在各种类型的关联关系当中,效率最高的是system,然后依次是const、eq_ref、ref、range、index和All(All的意思是:对应于上一级数据表里的每一条记录,这个数据表里的所有记录都必须被读取一遍这种情况往往可以用一索引来避免)。p
41、ossible_keys数据列给出了MySQL在搜索数据记录时可选用的各个索引。key数据列是MySQL实际选用的索引,这个索引按字节计算的长度在key_len数据列里给出。比如说,对于一个INTEGER数据列的索引,这个字节长度将是4。如果用到了复合索引,在key_len数据列里还可以看到MySQL具体使用了它的哪些部分。作为一般规律,key_len数据列里的值越小越好。ref数据列给出了关联关系中另一个数据表里的数据列的名字。row数据列是MySQL在执行这个查询时预计会从这个数据表里读出的数据行的个数。row数据列里的所有数字的乘积可以大致了解这个查询需要处理多少组合。最后,extra数
42、据列提供了与JOIN操作有关的更多信息,比如说,如果MySQL在执行这个查询时必须创建一个临时数据表,就会在extra列看到usingtemporary字样。2.1.9 MYSQL-安装注意1、如果是用MySQL+Apache,使用的又是FreeBSD网路操作系统的话,安装时候你应按注意到FreeBSD的版本问题,在FreeBSD的3.0以下版本来说,MySQLSource内含的MIT-pthread运行是正常的,但在这版本以上,你必须使用nativethreads,也就是加入一个with-named-thread-libs=-lc_r的选项。2、如果在COMPILE过程中出了问题,请先检查你
43、的gcc版本是否在2.81版本以上,gmake版本是否在3.75以上。3、如果不是版本的问题,那可能是你的内存不足,请使用./configure-with-low-memory来加入。4、如果要重新做你的configure,那么你可以键入rmconfig.cache和makeclean来清除记录。5、把MySQL安装在/usr/local目录下,这是缺省值,您也可以按照你的需要设定你所安装的目录。2.2 MYSQL数据库技术对于网站开发来说,使用数据库是开发专业站点必不可少的,但是但是数据库类别林林总总,Access、SQL Server和Oracle都不是开源免费软件,需要购买才能使用,而M
44、YSQL是开源软件,选择MYSQL是最节能成本的做法,而且Apache、PHP、MYSQL是绝配,它们的组合有着最佳的性能和最大的用户支持群。MYSQL是一个真正的多用户,多线程的结构化查询语言数据服务器,它以客户机/服务器的结构实现,并且还具有以下优势。2.2.1速度快开发者声称MYSQL数据库可能是目前得到的最快的数据库。2.2.2连接性和安全性MYSQL是完全网络化的,其数据库可在因特网上访问,因此可以和任何地方的任何人共享数据库,而且MYSQL还能进行访问控制,能够控制特定用户不允许其访问数据库。2.2.3可移植性MYSQL可运行在各种版本的UNIX系统及其他费NUXI系统上,从家用的
45、PC到高级服务器都可运行MYSQL2.2.4它支持SQL语言MYSQL支持支持这种现代数据库系统都选用的语言。2.2.5容易使用MYSQL是一个高性能且相对简单的数据库,易于操作。2.2.6成本优势MYSQL对于对于大多数个人用户来说是免费的!基于以上种种优势,所以,在做学生管理系统的时候我选择使用MYSQL作为Web服务器的数据库。第三章 开发工具与开发语言介绍3.1开发工具介绍APMSever就是Apache、MySQL加上PHP等聚合一起的绿色软件。Web服务器Apache在全球的website有极大的使用率。数据库MySQL, 一个快速、稳定的SQL数据库服务器。PHP, 扮演处理互动式信息的网页应用程序的角色。除了稳定、高效能之外,它们均免费,是最经济的选择。APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.284.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl网站服务器平台的绿色软件。无需安装,具有灵活的移动性,将其拷贝到其它目录、分区或别的电脑时,均只需点击APMServ.exe中的启动按钮,即可自动进行相关设置,将Apache和MyS