mysql数据库优化总结

以下是我目前对mysql数据库的优化总结,新人见解,有不足之处请见谅,谢谢。

1.不要给数据库留null值,尽可能使用not null;避免了在查询时对null值得比较,加快查询速度; 其次,null值会占用空间。

2.对查询的优化,要避免全扫描,可在where和Oder by涉及的列上建立索引。

3.尽量避免where字句中使用!=或<>的操作,否则引擎将放弃使用索引进行全表扫描;

4.尽量避免where中使用or,in,not in,原因同上,in可用exists代替:select num from a where exists(select 1 from b where num=a.num)

5.使用连接(JOIN)来代替子查询

SELECT * FROM customerinfo

LEFT JOIN salesinfo ON customerinfo.CustomerID=salesinfo.CustomerID

WHERE salesinfo.CustomerID ISNULL

6.使用union来代替手动创建的临时表;

SELECT Name,Phone FROM client UNION

SELECT Name,BirthDate FROM author UNION

SELECT Name,Supplier FROM product

7.使用事务。防止因意外状况而造成的数据不完整,如果两条sql语句中的一条执行失败,数据会回复到开始之前的状态。

BEGIN; INSERT INTO salesinfo SET CustomerID=14; UPDATE inventory SET Quantity=11 WHERE item=‘book’; COMMIT;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值