MySQL数据库优化的八种方式

1、选取最适用的字段属性

为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小

 

应该尽量把字段设置为NOTNULL

例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。

 

 

 

2、使用连接(JOIN)来代替子查询    
3、使用联合(UNION)来代替手动创建的临时表    
4、事务  

它的作用是:

要么语句块中每条语句都操作成功,要么都失败。

换句话说,就是可以保持数据库中数据的一致性和完整性。

事物以BEGIN关键字开始,COMMIT关键字结束。

在这之间的一条SQL操作失败,

那么,ROLLBACK命令就可以把数据库恢复到BEGIN开始之前的状态。

5. 锁定表

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

其实,有些情况下我们可以通过锁定表的方法来获得更好的性能。下面的例子就用锁定表的方法来完成前面一个例子中事务的功能。

1

2

3

4

5

LOCK TABLE inventory WRITE SELECT Quantity FROM inventory WHERE Item='book';

 

...

 

UPDATE inventory SET Quantity=11 WHERE Item='book'; UNLOCKTABLES

这里,我们用一个select语句取出初始数据,通过一些计算,用update语句将新值更新到表中。包含有WRITE关键字的LOCKTABLE语句可以保证在UNLOCKTABLES命令被执行之前,不会有其它的访问来对inventory进行插入、更新或者删除的操作。

 
6、使用外键    
7、使用索引    
8、优化的查询语句    
posted on 2022-06-14 14:01  肉松蛋卷  阅读(386)  评论(0编辑  收藏  举报