数据库优化方法
1、字段宽度尽量少设小,数据库中的表越小,在它上面执行的查询也就会越快
2、尽可能将字段设置成非空,这样在将来执行查询的时候,数据库不用去比较NULL值
3、数值型数据被处理起来的速度要比文本类型快得多
4、如果一个业务要关联很多表,是不是要稍微容忍下冗余字段,性能可能会数量上提升
5、连接查询大于子查询
原因:子查询会多次运算查询,连接查询利于优化器优化,而且可以使用多线程查询各个连接子句
6、使用联合(UNION)来代替手动创建的临时表
7、使用事务
好处:要么语句块中每条语句都操作成功,要么都失败,事务的另一个重要作用是当多个用户同时使 用相同的数据源时,它可以利用锁定数据库的方法来为用户提供一种安全的访问方式,这样可 以保证用户的操作不被其它的用户所干扰。
坏处:由于在事务执行的过程中,数据库将会被锁定,因此其它的用户请求只能暂时等待直到该事务 结束,在大数据下,会产生比较严重的响应延迟
8、锁表
商店现在某商品只有1件库存,然后A与B在网上进行下订,A与B几乎同时(或许也就差几毫秒,A比B 快那么一点点)进行.正常的流程是,先查询是否大于1,然后将库存减去1,此时在A将库存减去1的同时,B查的也是大于1的库存,也将库存减去1,造成了库存为-1的情况。此时将用到锁表
9、外键
锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性,外键可以保持数据的关联性
打个比方:论坛表跟评论表,删除论坛表,如果评论表设置了论坛表的外键 on delete cascade 那么在删除论坛表的同时就会删除此论坛的评论
10、使用索引
11、优化查询语句
12、优化存储优化
mysqld服务器配置文件
1、找到服务启动脚本文件,/etc/init.d
2、找到mysqld shell脚本,可以看到里面有配置文件在哪,然后根据配置文件找到日志文件
数据库性能分析工具
1、explain
压力测试工具:
jmeter