SQL优化

在Sql中

1,永远给表设置一个主键,最好是整形,且自增.

整型可以是int,或者 bigint, 整型排序快, 自增是为了不破坏已有的数据页,永远往后面插入新数据.

2,如果确定返回只有1条数据,尽量添加 limit 1

limit 1表示查询1条, 即只要有1条满足条件的数据, 就会返回, 不会继续比对其他数据.不会造成全表扫描

3,不要使用order by rand()来进行随机排序

因为rand()特别消耗cpu性能,且是所有行都会执行rand()函数.特别慢.

4.尽量不要写 select *

"*" 表示所有字段, 需要什么字段就写什么字段

5,拆分大的delete和insert (批量删除和批量添加)

批量的删除和批量的添加会造成锁表, 锁表期间,其他操作都停止.影响业务执行.

在数据库中

1,可以创建索引来提高查询性能

索引能提高查询性能, 注意增加,修改,删除会降低性能,所以总是查询建议用索引.

2,越小的存储空间,查询的越快

能用1个字节的,就不用4个字节,能用tinyint的就不用int, 字段越小查询越快.

3,尽可能使用not null

mysql里null也需要占用1个字节的空间

4.条件查询使用预编译而不是字符串拼接

预编译能有效防止SQL注入,在Mybatis里使用#{}, 不用${}

5,把ip地址存储为 unsigned int(无符号整型)

ip如果按照字符串存储,则需要15个字符长度, 即varchar(15), 而转成int只需4个字节

select INET_ATON('191.168.22.65'), INET_NTOA(3215464001)

6,固定长度的表,查询会更快

固定长度的表会提高性能,因为MySQL搜寻得会更快一些,因为这些固定的长度是很容易计算下一个数据的偏移量的,所以读取的自然也会很快

7,垂直切割

“垂直分割”是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数目,从而达到优化的目的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值