- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库性能优化方案.docx
智欣仙子 PAGE4 / NUMPAGES4 数据库性能优化方案 随着计算机技术越来越广泛地应用于国民经济的各个领域,在计算机硬件不断微型化的同时,应用系统向着复杂化、大型化的方向发展。数据库的性能优化大体上可以分成数据库结构设计、查询语句优化、缓存查询结果。 数据库结构设计 在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据 的完整性与正确性。只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。虽然对于小项目或中等规模的项目,开发人员可以很容易地利用范式理论设计出一套符合要求的数据库,但对于一个包含大型数据库的软件项目,就必须有一套完整的设计原则与技巧。 数据冗余 数据应该尽可能少地冗余,这意味着重复数据应该减少到最少。比如说,一个部门雇员的电话不应该被存储在不同的表中, 因为这里的电话号码是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的电话号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不一致性。 添加索引 对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。 分类拆分 对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。 行为拆分 对用户的行为进行分析,那些是需要频繁操作的数据,那些是乘积数据,对这两种数据分别存放。比如,一个会员系统的会员基本属性有:会员ID、登录账号、登录密码、网络昵称、联系方式、联系地址等。我们设想一下,现有一个会员A要求登录(select),另外有一个会员B要求更新自己的联系方式(update),并且上面前面提到的所有属性都建立在一张表上面,由于数据库的锁机制,会员B必须等待会员A的验证通过之后才能执行自己修改请求;如果还有一个会员C也要求登录(select),那么会员B就需要等待会员A和会员C都通过验证之后才会执行自己的修改请求。这种情况我们就可以将基本属性分解成两个表:会员编号、登录账号、登录密码,会员编号、网络昵称、联系方式、联系地址。 标签设计 几乎每个交互式站点都提供有哪些信誉好的足球投注网站功能,许多CMS信息系统还设计了一个关键词标签用于对文章的检索。对于有哪些信誉好的足球投注网站语句大部分人都会想到和用到like语句,这是基本思路无可否非,但如果被检索的数据表存在上百万的数据,这样检索所花费的时间就实在不敢恭维了。那么怎么设计标签才比较合理呢! 大家都知道用“=”号肯定比用“like”的性能更好,那么我们怎么结合“=”来检索标签呢。 我的思路就是把标签单独建表,和文章进行关联。如 标签表(tmp_tags) 文章标示(id)标签(key)1234PHP1234MySql1235PHP文章表(tmp_article) 文章唯一标示(id)其它属性12341235SQL:select a.* from tmp_article as a, tmp_tags as b where a.id=b.id and b.key=’???’ 优化查询语句 避免select * 通常大家在使用select语句时都会这样使用select * from tablename。但数据库服务器在解析时,如果碰到 *,则会先分析表的结构,然后把表的所有字段名再罗列出来。这就增加了分析的时间。 我们试想一下,如果表中有30个字段500条记录,而我们只使用到了其中少部分结果,这是不是对服务器宽带资源造成了不比较的浪费?如果我们这样写 select top 10 字段列 from tablename 是不是就好多了。 不要吝惜top 道理和上面一样,Mysql数据库中使用limit关键词。 from表名顺序 SQLSERVER的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表driving tabl
有哪些信誉好的足球投注网站
文档评论(0)