MySql -- 操作优化

MySql – 优化性能

1. 建表
1. 选择最合适的字段属性及长度;--> 数据库中的表越小,在它上面执行的查询也就越快;
2. 可非空字段尽量设置为NOT NULL; --> 执行查询的时候,数据库不用去比较NULL值;
3. 设置索引(用于join,where和orderby的字段) --> 可以令数据库服务器比没有索引快得多的速度检索特定的行;【尽量不要对数据库中某个含有大量重复值的字段建立索引】
4. 数字型优先字符型;--> 字符串会逐个比较,数字仅比较一次;
5. varchar/nvarchar 代替 char/nchar; --> 变长字段存储空间小,查询效率高(char类型 NULL 也会占空间);
2. 查询
1. 减少、避免使用子查询; --> 可用 JOIN 关联;
2. 用 IN 来替换 OR;
3. LIKE 双百分号无法使用到索引(避免开头模糊查询);  LIKE '%var%' --> LIKE 'var%'
4. 避免数据类型不一致;
5. 批量 INSERT 插入; --> 可批量操作不分开操作;
6. 避免进行null值的判断(WHERE att IS NULL) -> 可以给字段添加默认值0,对0值进行判断;
7. 避免 where 条件中等号的左侧进行表达式、函数操作; (WHERE att/10 = 9) --> (WHERE att = 9*10)
8. 避免使用where 1=1的条件; --> 没 where 条件就去掉 where;
9. 多表关联查询时,小表在前,大表在后;

6. 减少不必要的排序以及全表查询;
##导致引擎放弃索引进行全表扫描的操作
1. 开头模糊查询: liek '%var%';
2. in 和 not in;
3. 进行null值的判断;
4. where 条件中等号的左侧进行表达式、函数操作;
5. 使用where 1=1的条件;
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值