仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 741|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL网站制作之静态网页编程中优化数据库注重的十年夜原...

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
列举选择MySQL的理由的最困难的地方在于,如何对这些理由进行排序。MySQL学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋?与没无数据库的网站比拟,数据库的存取会下降你的体系功能。可是年夜多半情形下,网站和数据库有密不成分的干系,恰是数据库给站点供应了年夜容量、多样性、本性化等特征,并完成了良多特别的功效。
1不要健忘给数据库做索引。公道的索引能当即明显地进步数据库全部体系的功能。能够参考有关SQL功能调试书籍,学会依据所需查询体例公道制造索引和依据索引体例改善查询语句。
2在得当的情形下,尽量的用存储历程而不是SQL查询,由于前者已过了预编译,运转速率更快。同时让数据库仅仅前往你所必要的那些数据,而不是前往大批数据再让ASP程序过滤。总之要充实和无效地发扬数据库的壮大功效,让它依照我们的请求反应给我们最符合和最简练的信息。
3在大概情形下我们应当利用SQLServer而不是Access。由于Access仅仅是基于文件的数据库,多用户功能很差。数据库毗连只管利用OLEDB和非DSN体例,由于这类毗连体例有更好的并发功能。
4制止利用DAO(DataAccessObjects)和RDO(RemoteDataObjects)数据源,由于他们次要使用在单用户的处置体系里,ADO(ActiveXDataObjects)才是为Web使用计划的。
5创建纪录集Rescordset的时分要明晰公道地设置数据游标(cursort)和锁定体例(locktype)。由于在分歧的体例下ASP会以分歧的体例利用数据库,其实行速率也有很年夜区分,特别在年夜数据量的时分。假如你只想遍历数据,那末默许游标(行进、只读)会带来最好的功能。
6当你援用ADO变量的时分,会损耗较多的CPU周期。因而,假如在一个ASP页面中屡次援用数据库的字段变量,一个较好的体例是将字段值先放进当地变量,然后能够间接挪用当地变量来盘算和显现数据。
7缓存ADOConnection工具大概不是一个好主张。假如一个毗连(Connection)工具被存储在Application工具中而被一切ASP页面利用,那末一切页面就会争着利用这个毗连。可是假如毗连工具被存储在Session工具中,就要为每一个用户创立一个数据库毗连,这就减小了毗连池的感化,而且增年夜了Web服务器和数据库服务器的压力。能够用在每一个利用ADO的ASP页创立和开释ADO工具来替换缓存数据库毗连。由于IIS内建了数据库毗连池,以是这类办法十分无效,弱点是每一个ASP页面都必要举行一些创立和开释操纵。
8ASP最壮大和次要的用处之一就是对数据库举行操纵,在数据库操纵中我们要注重:不要恣意利用“SELECT*......”情势的SQL查询语句。应当只管检索你所必要的那些字段。好比一个表中有10个字段,可是你只会用到个中的一个字段(name),就该利用“selectnamefrommytable”,而不是用“select*frommytable”。在字段数对照少的时分,二者的区分大概其实不分明,可是当一个表中具有几十个字段的时分,数据库会多检索良多你其实不必要的数据。在这类情形下你最好不要为了节俭打字工夫大概惧怕查找对应字段称号的贫苦,而要老厚道实地利用“selectid,name,age...frommytable”。
9实时封闭翻开的纪录集工具和毗连(Connection)工具。纪录集工具和毗连工具泯灭体系资本相称年夜,因而它们的可用数目是无限的。假如你翻开了太多的纪录集工具和毗连工具而最初却没有封闭它们,大概会呈现ASP程序刚入手下手的时分运转速率很快,而多运转几遍就愈来愈慢的征象,乃至招致服务器逝世机。请利用以下办法举行封闭:
MyRecordSet.closeSetMyRecordSet=Nothing
SetMyConnection=Nothing   
10毗连数据库
仍旧利用ODBC体系大概文件DSN来毗连数据库,大概利用很快的OLEDB手艺来毗连。利用后者,当挪动Web文件时,不再必要修正设置。
OLEDB位于使用程序与ODBC层之间。在ASP页面中,ADO就是位于OLEDB之上的程序。挪用ADO时,起首发送给OLEDB,然后再发送给ODBC层。能够间接毗连到OLEDB层,这么做后,将进步服务器真个功能。怎样间接毗连到OLEDB呢?
假如利用SQLServer7,利用上面的代码做为毗连字符串:
strConnString="DSN=;DRIVER={SQLSERVER};"&_
        "UID=myuid;PWD=mypwd;"&_
        "DATABASE=MyDb;SERVER=MyServer;"
最主要的参数就是“DRIVER=”部分。假如你想绕过ODBC而利用OLEDB来会见SQLServer,利用上面的语法:
strConnString="Provider=SQLOLEDB.1;Password=mypassword;"&_
       "PersistSecurityInfo=True;UserID=myuid;"&_
       "InitialCatalog=mydbname;"&_
       "DataSource=myserver;ConnectTimeout=15"
为何这很主要?
如今你大概奇异为何进修这类新的毗连办法很关头?为何不利用尺度的DSN大概体系DSN办法?好,依据Wrox在他们的ADO2.0程序员参考书本中所做的测试,假如利用OLEDB毗连,要比利用DSN大概DSN-less毗连,有以下的功能进步体现:
功能对照:
----------------------------------------------------------------------
SQL                  Access
OLEDBDSN               OLEDBDSN
毗连工夫:1882            毗连工夫:6299
反复1,000个纪录的工夫:29005400   反复1,000个纪录的工夫:100950
----------------------------------------------------------------------
这个结论在Wrox的ADO2.0程序员参考宣布。工夫是以毫秒为单元,反复1,000个纪录的工夫是以服务器油标的体例盘算的。

RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。
沙发
发表于 2015-1-19 08:39:35 来自手机 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
不帅 该用户已被删除
板凳
发表于 2015-1-24 13:52:14 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
精灵巫婆 该用户已被删除
地板
发表于 2015-2-1 16:22:15 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
因胸联盟 该用户已被删除
5#
发表于 2015-2-7 08:45:20 | 只看该作者
比如日志传送、比如集群。。。
变相怪杰 该用户已被删除
6#
发表于 2015-3-6 20:07:55 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
柔情似水 该用户已被删除
7#
发表于 2015-3-13 08:08:38 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
飘灵儿 该用户已被删除
8#
发表于 2015-3-20 17:15:20 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-3 17:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表