1 / 6
文档名称:

MySQL数据库性能优化实际操作方案.doc

格式:doc   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MySQL数据库性能优化实际操作方案.doc

上传人:tswng35 2016/5/2 文件大小:0 KB

下载得到文件列表

MySQL数据库性能优化实际操作方案.doc

相关文档

文档介绍

文档介绍:..页眉.. 页脚.. 以下的文章主要向大家描述的是 MySQL 数据库性能优化的实际操作方案,随着 MySQL 数据库的不断发展, MySQL 数据库性能优化也变得越来越受重视, 以下的文章就主要对其性能优化做一详细介绍。 1 、选取最适用的字段属性 yij MySQL 可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小, 在它上面执行的查询也就会越快。因此, 在创建表的时候, 为了获得更好的 My SQL 数据库性能,我们可以将表中字段的宽度设得尽可能小。例如, 在定义邮政编码这个字段时, 如果将其设置为 CHAR(255), 显然给数据库增加了不必要的空间,甚至使用 VARCHAR 这种类型也是多余的,因为 CHAR(6) 就可以很好的完成任务了。同样的,如果可以的话,我们应该使用 MEDIUMINT 而不是 BIGIN 来定义整型字段。另外一个提高效率的方法是在可能的情况下, 应该尽量把字段设置为 NOT NULL ,这样在将来执行查询的时候,数据库不用去比较 NULL 值。对于某些文本字段,例如“省份”或者“性别”,我们可以将它们定义为 ENUM 类型。因为在 MySQL 中, ENUM 类型被当作数值型数据来处理, 而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的 MySQL 数据库性能。 2 、使用连接(JOIN) 来代替子查询(Sub-Queries) MySQL 从 开始支持 SQL 的子查询。这个技术可以使用 SELECT 语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。例如, 我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户 ID 取出来, 然后将结果传递给主查询, 如下所示: FROM customerinfo WHERE CustomerID NOT in (SELECT Custo merID FROM salesinfo ) 使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的 SQL 操作,同时也可以避免事务或者表锁死,并且写起来也很容易。但是,有些情况下, 子查询可以被更有效率的连接(JOIN).. 替代。例如, 假设我们要将所有没有订单记录的用户取出来,可以用下面这个查询完成: * FROM customerinfo WHERE CustomerID NOT in (SELECT Cus tomerID FROM salesinfo ) ..页眉.. 页脚.. 如果使用连接(JOIN).. 来完成这个查询工作, 速度将会快很多。尤其是当 salesinfo 表中对 CustomerID 建有索引的话, MySQL 数据库性能将会更好,查询如下: * FROM customerinfo LEFT JOIN salesinfoON customerinfo. CustomerID=salesinfo. CustomerID WHERE IS NULL 连接(JOIN).. 之所以更有效率一些,是因为 MySQL 不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作。 3 、使用联合(