优化数据库设计:。
数据字段类型使用varchar/nvarchar替换char/nchar,变长字段存储空间小,节省存储空间,在查询的时候小的空间字段搜索效率更高。
查询的时候避免全表扫描,可以在where和orderby的字段上建立索引。
where查询子句中不对null值做判断,会导致检索引擎放弃使用索引而使用全表扫描,如:selectid,namefromuserwhereageisnull可以设置age的默认值为0,保证没有null值,修改后的sql查询语句为:selectid,namefromuserwhereage=0。
谨慎使用索引,索引不是越多越好,一般一张表的索引数不要超过6个,如果太多要讨论业务是否合理或者是否索引建在了不常用的字段上,索引可以提高select查询的效率,但是也响应降低了insert和update的效率,因为在执行insert和update时也可能会重建索引。
尽量不要更新索引数据,因为索引数据的顺序是表记录的物理顺序,一旦发生改变将会导致整个表记的顺序发生改变,将会消耗大量资源,如果业务需要频繁更新索引数据列就要考虑索引是否创建合理,比如用户ID,身份证号码或者手机号码不经常改变的列可以考虑创建索引。
字符型字段如果符合业务需求可以修改为数字类型字段,因为字符型字段会降低查询和连接的性能,并且增加存储的开销,执行搜索的适合查询和连接会逐个比较字符串的每一个字符,如果是数据类型比对一次就可以了。
为什么使用Struts。
首先,Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分,Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
另外,struts具有页面导航功能,使系统的脉络更加清晰,通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处,尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
在Struts1中,由一个名为ActionServlet的Servlet充当控制器(Controller)的角色,根据描述模型,视图,控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。
在MVC的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts1里的ActionForm与Action两个需要继承实现超类,在这里,Struts1可以与各种标准的数据访问技术结合在一起,包括EnterpriseJavaBeans(EJB),JDBC与JNDI。
在Struts1的视图(View)端,除了使用标准的JavaServerPages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如VelocityTemplates,XSLT等。
通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与映射关系的配置文件(struts-config.xml)中。
什么是struts2。
Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架,其全新的Struts2的体系结构与Struts1的体系结构差别巨大,Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
评论(0)