数据库优化方法总结

本文探讨了数据库设计中的关键要素,如选择合适的数据类型、避免子查询和使用UNION,以及事务管理和索引优化。讲解了如何通过锁定表、利用外键保持数据关联性和选择适当的技术(如datetime vs timestamp)。
摘要由CSDN通过智能技术生成

1.在表设计阶段,选取最合适的字段属性(字段类型和长度)

char(固定长度字符长度)>varchar(可变长度的字符)
字段长度越短查询性能越高
DATETIME 大小为8个字节,混合日期和时间值
TIMESTAMP 大小为8个字节,混合日期和时间值,时间戳

2.用户连接来代替子查询

子查询笛卡尔积过高,数据量较大的场合,对数据库性能消耗过大,可能使数据库卡死崩溃

3.使用联合

使用联合(UNION)来代替手动创建的临时表

4.事物

当需要执行多条sql来满足一个需求时,事物可以很好的保持数据库中数据的完整性和一致性。

5.锁定表

在执行事物的过程中,数据库将会被锁定,
因此其他用户的请求只能暂时等待直到该事物结束。此时我们可以通过锁定表来获得更好的性能。

6.外键

保护数据的关联性

7.使用索引

索引是提高数据库性能的常用方法,他可以令数据库服务器以比没有索引快得多的速度检索特定的行,
尤其是在查询语句当中包含有max()、min()和order by这些命令的时候,性能提高更为明显。
一般说来,索引应建立在哪些将用于join、where判断和oder by排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引

8.sql调优

使用索引时应注意:
	1.最好是在相同类型的字段进行比较的操作
	2.在建有索引的字段上尽量不要使用函数进行操作,索引会失效
	3.在搜索字符类型字段时,尽量少的使用like关键字和通配符,系统性能较大
		SELECT `column` FROM `table` WHERE `field` like '%keyword%';不会使用索引
		SELECT `column` FROM `table` WHERE `field` like 'keyword%';会使用索引
		如果不清楚前缀,则可以考虑使用locate、position、instr函数

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值