mysql的几点优化总结

1、手机号存储

使用BIGINT代替CHAR或者VARCHAR存放手机号码。

这是因为CHAR或者VARCHAR,占用空间大,影响查询性能。 例如:11位手机号CHAR存储,utf8编码,则占用33个字节; 使用如果使用INT的话,INT最大只能保存10为数据,而手机号为11位,会出现溢出,所以使用BIGINT占用8个字节,支持11为数据存储。

2、IP地址可以使用INT存储

MySQL里提供了一个很好的函数:INET_ATON(),他负责把IP地址转化为数字,而另一个函数INET_NTOA()负责将数字转化为IP地址,示例如下:

//存储
mysql> insert into test values(1,INET_ATON('192.168.1.213'));
//取出
mysql> select id,INET_NTOA(ip) from test;

3、尽量避免使用or来作连接条件

//原查询语句
select id from t where num=10 or num=20 
//修改后的语句
select id from t where num=10 union all select id from t where num=20

4、in 和 not in 也要慎用,否则会导致全表扫描

//慎用
select id from t where num in(1,2,3) 

5、对于连续的数值,能用 between 就不要用 in 了

//between代替in或者><
select id from t where num between 1 and 3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值