目 录 引言... 4 内容来自论文无忧网 www.paper51.com 一、 索引... 4 内容来自论文无忧网 www.paper51.com 1.1使用索引的优点... 4 内容来自www.paper51.com 1.2使用索引的缺点... 4 http://www.paper51.com
1.3索引的使用... 4 copyright paper51.com 二、 查询优化方法... 4 paper51.com 三、关于调度和锁定的使用... 5 内容来自www.paper51.com 四、服务器优化技巧... 5 copyright paper51.com 五、硬件优化方法... 6 paper51.com 六、总结... 6 内容来自论文无忧网 www.paper51.com
参考文献... 7 内容来自www.paper51.com 致 谢... 7 内容来自论文无忧网 www.paper51.com
copyright paper51.com 引言 内容来自www.paper51.com MySQL数据库是具有规则的和可预测的结构的数据集合。为提高数据的查询速度,我们可以: http://www.paper51.com 1、对数据表添加索引; http://www.paper51.com
2、最大限度地利用索引; 内容来自论文无忧网 www.paper51.com
3、编写高质量的语句,可以使服务器响应速度更快; 内容来自论文无忧网 www.paper51.com 4、优化硬件处理过程,减少物理约束。 内容来自论文无忧网 www.paper51.com
一、 索引 内容来自论文无忧网 www.paper51.com
索引技术是关系数据查询中重要的技术。如果要提升数据库的性能,索引优化应是首先考虑问题。 内容来自论文无忧网 www.paper51.com 1.1使用索引的优点 http://www.paper51.com 1、 如果数据库没有索引就相当于聚合没有排序,要对数据库查询对需进行全面扫描。有索引的表可通过索引快快定位记录。 http://www.paper51.com
2、 假如数据表很多,查询时索引的作用就更大。假如没有索引,全表扫描的次数很可能是各表数据行的组的个数,这样会造成数据库瘫痪。 paper51.com 3、 假如使用MIN()或者是MAX()函数的查询时,当数据列上有相关的索引,MySQL就不用一个一个地去查找数据行,就能直接找到行的最大值和最小值。 http://www.paper51.com 4、 索引可以加快ORDERBY和GROUP BY子句的操作。 copyright paper51.com
1.2使用索引的缺点 内容来自论文无忧网 www.paper51.com 1、 索引需要占用磁盘空间。 copyright paper51.com
2、 索引会减慢在索引数据列上的插入、删除和修改操作的速度。 paper51.com 1.3索引的使用 内容来自论文无忧网 www.paper51.com 1、 使用唯一索引,它能使索引发挥更好的作用。 copyright paper51.com 2、 因为索引会占用系统资源,所以不要创建太多索引。 paper51.com 3、 索引用于<、<=、=、>=、>、BETWEEN等的比较操作中,所以索引应建立在与操作相关的数据列上。 内容来自论文无忧网 www.paper51.com
4、 假如查询性能比较慢的情况下,可以使用慢查询日志来,用mysqldumpslow可查日志。这样可以利用索引来加快查询速度。 内容来自论文无忧网 www.paper51.com
5、 使用比较短的值进行索引。当对字符串进行索引时,应该指定一个前缀长度,比如对字符串的前10位或20位的字符进行排序。这样能减少磁盘输入/输出,提高处理速。 copyright paper51.com 二、 查询优化方法 copyright paper51.com MySQL对客户发出的查询语句进行分析它进行分析。例如:把explain语句放到查询前面就可以显示查询的执行路线,对优化查询提供信息,选择使用合适的数据列类型可以提高查询效率,如: paper51.com 1、 对相同类型的数据列进行比较。如:char(5)是固定长度,varchar(5)是可变长度,他们是不同类型的字符数据类型。 内容来自www.paper51.com 2、 LIKE使用时候开头不要使用通配符。如:%string%。 内容来自www.paper51.com 3、 假如在复杂表达式中使用单独的索引数据列,索引会不起作用。 copyright paper51.com 4、 可以使用Explain语句检测索引查询的速度。 http://www.paper51.com 5、 可以写不同的查询语句比较运行情况。 内容来自www.paper51.com 6、 使用statement语句时,该语句在查询之前构建语法树 ,在查询时就直接查询,可以很好的提高查询的效率。 内容来自www.paper51.com 7、 选择使用尺寸较小的数据列。短小数据列上建立索引,可以节约磁盘空间、加快查询和处理速度。 copyright paper51.com 8、 用NOT NULL申明数据列,可以有效地节约存储空间和加快处理速度。 内容来自www.paper51.com 9、 在取值范围有限的情况下,使用Enu可以使在mysql中的处理速度是很快。 paper51.com 10、 当BLOB值移到另外一个数据表中时,假如可以使数据表中其它数据列转变成固定长度数据列。就可以减少数据表碎片,避免select *语句查询时不会把较大的BLOB值在网络传送。 paper51.com |