sql优化

对查询进行优化,尽量避免全表扫描,首先考虑在where和order by设计的列上简历索引


1.对于max()和count()这样的统计函数,将统计的字段设置索引可以实现sql的优化

2.子查询编程连接查询,可以加快查询的速度

3.优化limit,方法一:记录上次查询返回的主键,在下次查询时,利用主键进行过滤 。

    方法二:使用有索引的主键进行排序

4.如何选择在合适的字段建立索引

1.在where从句,group by 从句,order by 从句,on从句中出现的列

2.索引字段越小越好

3.离散度大的列放到索引的前面,离散度值得的非重复ID的个数

5.索引优化

创建索引 :

CREATE index sc_c_id_index on SC(c_id);


6.数据库结构优化

使用可以存下数据的最小的数据类型

使用简单的数据类型,int要比varchar简单,使用int存储日期时,用到两个函数

FROM_UNIXTIME()和UNIX_TIMESTAMP()

使用bigint来存储IP地址,用到两个函数

INRT_ATON()和INET_NTOA()

尽可能使用not null定义字段

尽量少用text ,非用不可时最好考虑分表

7.范式化优化方法,将表查分,并建立关,避免数据冗余,插入,更新,删除异常问题

8.反范式化优化方法,适当的增加冗余,以一种空间来换区时间的操作实现查询的优化

9.水平拆分,垂直拆分。

尽量避免在where子句中使用!=或者<>,避免使用or连接条件,如果一个字段有索引,一个字段没索引,否则会进行全表扫描

对于连续的数值,能用between就不用in了,in和not in都要慎用,否则会全表扫描



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值