数据库优化方法 数据库的优化方法


数据库优化方法 数据库的优化方法

文章插图
优化数据库的方法有:


1、选取最适用的字段属性,MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小 , 在它上面执行的查询也就会越快 。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小 。
【数据库优化方法 数据库的优化方法】

2、使用连接(JOIN)来代替子查询(SubQueries),MySQL从4.1开始支持SQL的子查询 。这个技术可以使用 SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中 。例如,我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户ID取出来,然后将结果传递给主查询 。


3、使用联合(UNION)来代替手动创建的临时表,MySQL从4.0的版本开始支持union查询 , 它可以把需要使用临时表的两条或更多的select查询合并的一个查询中 。在客户端的查询会话结束的时候,临时表会被自动删除 , 从而保证数据库整齐、高效 。使用union来创建查询的时候,我们只需要用UNION作为关键字把多个select语句连接起来就可以了 , 要注意的是所有select语句中的字段数目要想同 。


4、事务,尽管我们可以使用子查询(SubQueries)、连接(JOIN)和联合(UNION)来创建各种各样的查询,但不是所有的数据库操作都可以只用一条或少数几条SQL语句就可以完成的 。更多的时候是需要用到一系列的语句来完成某种工作 。但是在这种情况下,当这个语句块中的某一条语句运行出错的时候,整个语句块的操作就会变得不确定起来 。设想一下 , 要把某个数据同时插入两个相关联的表中,可能会出现这样的情况:第一个表中成功 更新后,数据库突然出现意外状况 , 造成第二个表中的操作没有完成,这样,就会造成数据的不完整,甚至会破坏数据库中的数据 。要避免这种情况,就应该使用事务 , 它的作用是:要么语句块中每条语句都操作成功,要么都失败 。换句话说,就是可以保持数据库中数据的一致性和完整性 。事物以BEGIN关键字开始 , COMMIT关键字结束 。在这之间的一条SQL操作失败,那么 , ROLLBACK命令就可以把数据库恢复到BEGIN开始之前的状态 。


5、锁定表,尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能 , 尤其是在很大的应用系统中 。由于在事务执行的过程中,数据库将会被锁定,因此其它的用户请求只能暂时等待直到该事务结束 。如果一个数据库系统只有少数几个用户来使用 , 事务造成的影响不会成为一个太大的问题;但假设有成千上万的用户同时访问一个数据库系统,例如访问一个电子商务网站,就会产生比较严重的响应延迟 。


6、使用外键 , 锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性 。这个时候我们就可以使用外键 。


7、使用索引,索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行 。一般说来 , 索引应建立在那些将用于JOIN,WHERE判断和ORDERBY排序的字段上 。尽量不要对数据库中某个含有大量重复的值的字段建立索引 。对于一个ENUM类型的字段来说,出现大量重复值是很有可能的情况 。


8、优化的查询语句 , 绝大多数情况下,使用索引可以提高查询的速度 , 但如果SQL语句使用不恰当的话,索引将无法发挥它应有的作用 。