jsp文件用什么程序打开

jsp文件用什么程序打开,第1张

MySQL名字的来历

MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。

MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。

MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。

[编辑本段]MySQL的概述

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的官方网站的网址是:

[编辑本段]MySQL的特性

1使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种 *** 作系统

3为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。

4支持多线程,充分利用CPU资源

5优化的SQL查询算法,有效地提高查询速度

6既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名

7提供TCP/IP、ODBC和JDBC等多种数据库连接途径

8提供用于管理、检查、优化数据库 *** 作的管理工具

9可以处理拥有上千万条记录的大型数据库

[编辑本段]MySQL的应用

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为 *** 作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。

[编辑本段]MySQL管理

可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。

phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web介面管理MySQL资料库。

phpMyBackupPro也是由PHP写成的,可以透过Web介面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。

另外,还有其他的GUI管理工具,例如早先的mysql-front 以及 ems mysql manager,navicat 等等。

[编辑本段]Mysql存储引擎

MyISAM Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务

InnoDB 事务型数据库的首选引擎,支持ACID事务,支持行级锁定

BDB 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性

Memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失

Merge 将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用

Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差

Federated 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用

Cluster/NDB 高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用

CSV 逻辑上由逗号分割数据的存储引擎

BlackHole 黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继

另外,Mysql的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己的存储引擎。

[编辑本段]Mysql最常见的应用架构

单点(Single),适合小规模应用

复制(Replication),适合中小规模应用

集群(Cluster),适合大规模应用

[编辑本段]mysql历史版本

MySQL公司目前在同时开发两个版本的软件,41版以及50版。41版本的代码已经发布并有望在8个月后公布最终代码。而50版本的最后产品将在6个月后发布。

MySQL41版本中增加了不少新的性能,包括对主键的更高速度的缓存,对子查询的更好的支持,以及应网络约会网站所要求的,基于地理信息的查询。

而其同步开发的50版本则把目标对准了企业用户,对于41版本中的所有新特性,50版本悉数收入囊中,并且独具以下特点:对外键的良好支持;系统自动报错机制以及对存储过程的充分支持。

Mysql现在现已开发出51版本支持视图!

[编辑本段]Mysql中文视频教学

左光华的mysql网络数据库开发教学视频

Mysql60的alpha版于2007年初发布,新版增加了对falcon存储引擎的支持。Falcon是Mysql社区自主开发的引擎,支持ACID特性事务,支持行锁,拥有高性能的并发性。Mysql AB公司想用Falcon替代已经非常流行的InnoDB引擎,因为拥有后者技术的InnoBase已经被竞争对手Oracle所收购。

2008年1月16日,Sun Microsystems宣布收购MySQL AB,出价约10亿美元现金包括期权。

[编辑本段]MySQL的基本命令

[ ]中的内容为可选项

--创建数据库

mysql> create database 数据库名称

--创建表

mysql> create table 表名 (

列的名字(id)类型(int(4))primary key(定义主键) auto_increment(描述 自增),

……,

);

--查看所有数据库

mysql> show databases 数据库名称;

--使用某个数据库

mysql> use database 数据库名称;

--查看所使用数据库下所有的表

mysql> show tables;

--显示表的属性结构

mysql> desc 表名;

--选择表中数据的显示

-- 代表选择所有列 ,

mysql> select from 表名 where id=[and name=?] [or name=];

mysql> select id,name from 表名order by 某一列的名称 desc(降序,asc为升序)

--删除表中的数据

mysql> delete from table where id=?[or name= (and name=)];

--删除表

mysql> drop table;

--删除数据库

mysql> drop database;

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

注:[1]索引不是万能的!索引可以加快数据检索 *** 作,但会使数据修改 *** 作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止 MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。[2]另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。

从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。

1 InnoDB数据表的索引

与MyISAM数据表相比,在 InnoDB数据表上,索引对InnoDB数据表的重要性要在得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。"数据行级锁定"的意思是指在事务 *** 作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECTLOCK IN SHARE MODE、SELECTFOR UPDATE命令以及INSERT、UPDATE和DELETE命令。

出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。

2 限制

如果WEHERE子句的查询条件里有不等号(WHERE coloum != ),MySQL将无法使用索引。

类似地,如果WHERE子句的查询条件里使用了函数(WHERE DAY(column) = ),MySQL也将无法使用索引。

在JOIN *** 作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引。

如果WHERE子句的查询条件里使用比较 *** 作符LIKE和REGEXP,MySQL 只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKE 'abc%',MySQL将使用索引;如果查询条件是LIKE '%abc',MySQL将不使用索引。

在ORDER BY *** 作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDER BY方面也没什么作用)

如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如"0/1"或"Y/N"等值,就没有必要为它创建一个索引。

普通索引、唯一索引和主索引

1 普通索引

普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column = )或排序条件(ORDER BY column)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。

2 唯一索引

普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个"员工个人资料"数据表里可能出现两次或更多次。

如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是 MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

3 主索引

在前面已经反复多次强调过:必须为主键字段创建一个索引,这个索引就是所谓的"主索引"。主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE。

4 外键索引

如果为某个外键字段定义了一个外键约束条件,MySQL就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。

5 复合索引

索引可以覆盖多个数据列,如像INDEX(columnA, columnB)索引。这种索引的特点是MySQL可以有选择地使用一个这样的索引。如果查询 *** 作只需要用到columnA数据列上的一个索引,就可以使用复合索引INDEX(columnA, columnB)。不过,这种用法仅适用于在复合索引中排列在前的数据列组合。比如说,INDEX(A, B, C)可以当做A或(A, B)的索引来使用,但不能当做B、C或(B, C)的索引来使用。

6 索引的长度

在为CHAR和VARCHAR类型的数据列定义索引时,可以把索引的长度限制为一个给定的字符个数(这个数字必须小于这个字段所允许的最大字符个数)。这么做的好处是可以生成一个尺寸比较小、检索速度却比较快的索引文件。在绝大多数应用里,数据库中的字符串数据大都以各种各样的名字为主,把索引的长度设置为10~15个字符已经足以把搜索范围缩小到很少的几条数据记录了。

在为BLOB和TEXT类型的数据列创建索引时,必须对索引的长度做出限制;MySQL所允许的最大索引jlkjljkjlj全文索引

文本字段上的普通索引只能加快对出现在字段内容最前面的字符串(也就是字段内容开头的字符)进行检索 *** 作。如果字段里存放的是由几个、甚至是多个单词构成的较大段文字,普通索引就没什么作用了。这种检索往往以LIKE %word%的形式出现,这对MySQL来说很复杂,如果需要处理的数据量很大,响应时间就会很长。

这类场合正是全文索引(full-text index)可以大显身手的地方。在生成这种类型的索引时,MySQL将把在文本中出现的所有单词创建为一份清单,查询 *** 作将根据这份清单去检索有关的数据记录。全文索引即可以随数据表一同创建,也可以等日后有必要时再使用下面这条命令添加:

ALTER TABLE tablename ADD FULLTEXT(column1, column2)

有了全文索引,就可以用SELECT查询命令去检索那些包含着一个或多个给定单词的数据记录了。下面是这类查询命令的基本语法:

SELECT FROM tablename

WHERE MATCH(column1, column2) AGAINST('word1', 'word2', 'word3')

上面这条命令将把column1和column2字段里有word1、word2和word3的数据记录全部查询出来。

注解:InnoDB数据表不支持全文索引。

查询和索引的优化

只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快--不管有没有使用索引。只有当数据库里的记录超过了1000条、数据总量也超过了MySQL服务器上的内存总量时,数据库的性能测试结果才有意义。

在不确定应该在哪些数据列上创建索引的时候,人们从EXPLAIN SELECT命令那里往往可以获得一些帮助。这其实只是简单地给一条普通的SELECT命令加一个EXPLAIN关键字作为前缀而已。有了这个关键字,MySQL将不是去执行那条SELECT命令,而是去对它进行分析。MySQL将以表格的形式把查询的执行过程和用到的索引(如果有的话)等信息列出来。

在EXPLAIN命令的输出结果里,第1列是从数据库读取的数据表的名字,它们按被读取的先后顺序排列。type列指定了本数据表与其它数据表之间的关联关系(JOIN)。在各种类型的关联关系当中,效率最高的是system,然后依次是const、eq_ref、ref、range、index和All(All的意思是:对应于上一级数据表里的每一条记录,这个数据表里的所有记录都必须被读取一遍--这种情况往往可以用一索引来避免)。

possible_keys数据列给出了MySQL在搜索数据记录时可选用的各个索引。key数据列是MySQL实际选用的索引,这个索引按字节计算的长度在key_len数据列里给出。比如说,对于一个INTEGER数据列的索引,这个字节长度将是4。如果用到了复合索引,在key_len数据列里还可以看到MySQL具体使用了它的哪些部分。作为一般规律,key_len数据列里的值越小越好(意思是更快)。

ref数据列给出了关联关系中另一个数据表里的数据列的名字。row数据列是MySQL在执行这个查询时预计会从这个数据表里读出的数据行的个数。row数据列里的所有数字的乘积可以让我们大致了解这个查询需要处理多少组合。

最后,extra数据列提供了与JOIN *** 作有关的更多信息,比如说,如果MySQL在执行这个查询时必须创建一个临时数据表,就会在extra列看到using temporary字样

[编辑本段]安装MySQL时候的注意事项

1、如果您是用MySQL+Apache,使用的又是FreeBSD网路 *** 作系统的话,安装时候你应按注意到FreeBSD的版本问题,在FreeBSD的30以下版本来说,MySQL Source内含的MIT-pthread运行是正常的,但在这版本以上,你必须使用native threads,也就是加入一个with-named-thread-libs=-lc_r的选项。

2、如果您在COMPILE过程中出了问题,请先检查你的gcc版本是否在281版本以上,gmake版本是否在375以上。

3、如果不是版本的问题,那可能是你的内存不足,请使用/configure -- with-low-memory来加入。

4、如果您要重新做你的configure,那么你可以键入rm configcache和make clean来清除记录。

5、我们一般把MySQL安装在/usr/local目录下,这是缺省值,您也可以按照你的需要设定你所安装的目录。

基本介绍SVN全名Subversion,即版本控制系统。软件介绍运行方式svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊,用户自行选择。存储数据svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。详见subversion。集中式版本管理系统Svn是一种集中式文件版本管理系统。集中式管理的工作流程如下图:集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。下面举例说明:开始新一天的工作:1:从服务器下载项目组最新代码。2:进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了那些代码,就需要这样做了)。3:下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。缺点:1、 服务器压力太大,数据库容量暴增。2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。优点:1、 管理方便,逻辑明确,符合一般人思维习惯。2、 易于管理,集中式服务器更能保证安全性。3、 代码一致性非常高。4、 适合开发人数不多的项目开发。5、大部分软件配置管理的大学教材都是使用svn和vss。安全领域的SVNSVN站在更高层次上对现在的安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业***的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是***、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。SVN提供了目前基于网络实现的eBusiness 应用的安全服务,它包含:对多种应用进行全面的安全认证;支持多种认证及PKI;功能强大并对用户透明的通讯加密;面向用户的集中安全策略管理;统一跨接Internet、Intranet、Extranet的通讯。体系结构带有防火墙的***网关,它是一个将防火墙和***技术紧密结合的网关产品;SVN安全远程客户端软件包,一个功能强大的***客户端软件,支持台式机用户、远程用户和移动用户,具有集中化管理的个人防火墙功能和***用户的安全认证功能;SVN证书管理模块,一个用于SVN的完整PKI解决方案,它将完善的CA和LDAP目录服务器技术集成在一起;SVN硬件加密卡,可以通过硬件技术实现功能强大的各种算法以提高***的速度和性能;SVN智能带宽管理模块,一个基于企业策略的带宽管理解决方案,可以智能地管理有限的带宽资源,以确保用于企业重要应用的***性能可靠;SVN冗余管理模块,通过冗余网关集群和防火墙***内的SVN冗余模块,对执行重要任务的***和防火墙应用在出现故障时实现无缝切换。自动地址转换模块,一个自动管理IP地址和命名的解决方案,通过提供IP地址服务的跟踪和集中化管理,确保可靠地控制地址分配和提高TCP/IP管理效率;SVN安全服务器软件包,专门保护单个应用服务器安全的***网关软件,它可以保护进行敏感 *** 作的服务器免受攻击和未授权的访问,使客户端建立与服务器间的安全认证和支持交换加密数据的连接;SVN安全客户端软件包,它将基于状态检测的防火墙和基于IPSec的***客户端软件集成在客户端机器上,通过提供集中管理的个人防火墙和对所有企业***用户的安全认证,增强客户端机器的安全性。它与 SVN安全远程客户端软件功能相比,增强了客户端的安全功能,如访问控制和安全初始化控制等。发展历史早在2000年,CollabNet, Inc就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个更好的解决方案。不幸的是,至少在免费license中,因为没有更好的选择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去除CVS的bug和不好的特性。在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自行管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。优缺分析所有的文档都显示SVN可以取代CVS,同时SVN的问题和缺点都被隐藏了。不幸的是,我们并不认为SVN是CVS的替代品,尽管很多缺陷都被修改了。更有甚者,它甚至让人重回VSS。CVS和SVN的比较类似于比较C++和Java。很明显CVS和SVN都远比SourceSafe强大的多,如同C++和Java比Basic强大的多。CVS代表了几乎代码控制系统的所有功能项,尽管有时他的实现并不很方便。SVN修正并添加了一些CVS并不拥有功能。例如,创建标志和分支dubious,你在编辑文件时其他人不会有任何通知。SVN并不是CVS的替代品,只是个不同的系统,类似于CVS。它有些特有的功能,足以作为采用它的理由。这些功能使他更适合于开发环境,例如对PowerBuilder。下面你可以找到两者的相对优势、劣势。1 存储类型格式CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话可以手工修改RCS文件。SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明。2 速度CVS比较慢。整体而言,由于架构实现的不同, SVN的确比CVS快很多。在网络上它只传输很少的信息并支持更多的离线模式的功能。但这也是有代价的。速度的代价就是巨大的存储(完全备份所有的工作文件)。3 标志&分支SVN把采用标志和分支而抛弃了其他三件东西,实际上这意味着他们把这个概念替换为在档案库内部复制文件或目录以便保存日志。这样一来,无论标志创建还是分支创建都只是仓库内部的文件复制了。对分支而言:现在分支不过是在仓库内部的一个单独的目录而已了,不像早期还有些什么交错。对标志而言:已经不能对代码加标志了。在某种程度上说,SVN全文件编号补足了这个缺陷,SVN里整个仓库都有版本号,但不是针对单个文件。4 元数据CVS只允许存储文件。 SVN允许一个文件有任意多的可命名属性,功能十分完全。5 文件类型CVS最初是为文本文件存储而设计的。因此其他文件类型(二进制,统一码)文件的支持几乎没有,如需要的话则要有其他信息,并且客户端服务器端都要调整。SVN会关心所有的文件类型,不需要你来手工 *** 作。6 回滚CVS允许任意的回滚,在任意一个已递交的版本上,尽管这要花些时间(所有的文件都要分别处理)。 SVN不允许递交后回滚。建议把版本库里好的状态版本加到末尾,覆盖掉损坏的版本。而损坏的版本无论如何也是会存在数据库里的。(SVN的滚回 *** 作实际上是merge *** 作)7 事务CVS中的“零或一”事务原则根本没有实现。如果检入几个文件的话(加到服务器上),很有可能部分文件完成了,而另几个没有。作为一个潜规则,手工纠正这些并且对余下的文件 (而不是所有文件)一一重复检入。这样这些文件将在两阶段中被检入。SVN的确支持“零或一”事务原则,这是SVN的一大优势。软件相关SVN-Vss与Svn的对比1 支持重命名,这对 Java 开发来说非常重要。为了得到更好的代码,开发中需要经常进行重构,重构就经常涉及到文件的重构名,而重命名中 VSS中是不被支持的。2 开发的时候不一定要锁定。一方面导致重构不方便,另一方面,不能离线开发,使用 SVN就不同,可以带回家继续开发,回来后,提交就行了。3 多平台。可以支持多个平台下的 *** 作4 更好的客户端支持。Eclipse 中的 VSS Plugin 不如它的 SVN Plugin 好用。一个在 Windows 下用的 SVN 客户端 TortoiseSVN 也比VSS 的客户端好用(VSS 只有微软提供的一个 GUI 客户端)。5 更好地与外围工具集成。各种各样的外围工具(主要是服务器端),满足多种需要。如果有需要,也可以自己写插件或管理脚本,开放的架构,允许我们这样做。6 方便。一个例子:部署应用的时候,以前的做法是找出一个项目中修改过的文件,更新到服务器上去,现在可以在服务器上执行 svn export 命令,把代码库中的最新版本导出,完成部署(也可以替换回老版本)。7 速度与稳定性看起来都不错。学习它的管理、它的工作方式,是值得的。而 VSS是一个已经被逐渐抛弃的软件。如果时间不是多得没处用,那么就把时间花在最值得花的东西上面。SVN远程修改密码由于SVN没有自己的远程管理工具,只能上服务器上用命令行 *** 作,故 *** 作起来比较复杂。为此,svn俱乐部开发出svn管家对svn进行远程管理,svn管家目前推出了windows版本和linux版本,部署很方便,不用安装额外的环境如mysql、PHP或JAVA。svn管家不仅可以方便的远程修改用户密码,更可以对svn进行远程管理,极大地方便了SVN的用户。其他从启动这个项目到现在,虽然CollabNet提供了大部分的资金(它付出几位全职 Subversion 开发人员的薪水), 但这还是个开源项目, 由一组松散透明的规则所约定。 CollabNet 拥有代码的版权完全符合 Debian Free Software Guidelines。 换句话说, 每个人都可以随意地免费下载、修改、以及重新发布 Subversion; 完全不需要经过 CollabNet, 或是任何人的允许。

以上就是关于jsp文件用什么程序打开全部的内容,包括:jsp文件用什么程序打开、如何测试mysql的性能和稳定性、mysql关于事物的常识等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10186170.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存