
如何加快数据库读取.ppt
8页数据库优化组长:赵林雁组员:葛子楠 段仪 雷虹n 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) n 2、I/O吞吐量小,形成了瓶颈效应 n 3、没有创建计算列导致查询不优化 n 4、内存不足 n 5、网络速度慢 n 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) n 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) n 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源 n 9、返回了不必要的行和列 n 10、查询语句不好,没有优化 查询速度慢的原因编程优化外部优化索引优化方式:切表减少比较次数1,Between在某些时候比IN速度更快,Between能够更快地根据索引找到范围select*fromchineseresumewheretitlein('男','女')Select*fromchineseresumewherebetween'男'and'女'是一样的由于in会在比较多次,所以会减慢速度。
2、一般在GROUPBY个HAVING字句之前就能用WHERE剔除多余的行,所以尽量不要用它们来做剔除行的工作SELECTstore_name,SUM(sales)FROMStore_InformationGROUPBYstore_nameHAVINGSUM(sales)>1500报已经通过预审编程优化减少多余数据或者操作1、避免过多的变量,如果可以,最好多次使用一个变量2、及时结束对象4、查询时不要返回不需要的行、列配置缓存:缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便配置缓存可以有效的降低数据库查询读取次数,从而缓解数据库服务器压力,达到优化的目的,一定程度上来讲,这算是一个“围魏救赵”的办法可配置的缓存包括索引缓存(key_buffer),排序缓存(sort_buffer),查询缓存(query_buffer),表描述符缓存(table_cache)外部优化其他:1、升级硬件--网络数据库系统由于是针对多用户并行设计的,需要消耗的内存资源很大。
一般情况下首先应该考虑是不是由于硬件配置太低而引起的问题2、提高网速--数据交换速度3、扩大服务器的内存--数据交流4、增加服务器CPU个数--数据处理速度5、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能尽量将数据的处理工作放在服务器上,减少网络的开销定义:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息优点:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性第二,可以大大加快数据的检索速度第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能缺点:第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度索引一、分类:纵向、横向1.纵向:定义:按类别截取相应数据,单条记录不完整。
2.横向:定义:把记录分到不同表中,记录保持完整横向切表典型用法:每个用户的用户数据一般都比较庞大,但是每个用户数据之间的关系不大二、切表优点缺点优点:横向:有效降低表的大小,减少由于加锁导致的等待纵向:字段较多时使用能加速查询时间缺点:1.查询会变复杂,尤其是需要排序的查询2.会破坏原始表的完整性,如果该表的统计操作较多,则不适用.切表谢谢大家。












