MySQL数据库使用时注意事项

建表的角度上

1、合理安排表关系
2、尽量把固定长度的字段放在前面
3、尽量使用char 代替varchar
4、分表:水平分和垂直分

在使用sql语句的时候

1、尽量用where来约束范围到一个比较小范围的程度,比如分页
2、尽量使用连表查询,而不是使用子查询
3、删除数据或者修改数据的时候尽量使用主键作为条件
4、合理创建和时候用索引

合理创建和时候用索引

正确使用索引
1、查询的条件字段不是索引字段,对哪一个字段创建了索引就对哪一个字段做条件查询
2、在创建索引的时候应该对区分度比较大的列进行创建
1/10以下的重复率比较适合创建索引
3、范围
范围越大越慢
范围越小越快
!= 慢
like 'a%' 快
like '%a' 慢
4、条件列参与计算/使用函数
5、and 和 or
多个条件的组合,如果使用and连接,其中一列含有索引,都可以加快查找速度
如果使用or连接,必须所有的列都含有索引,才能加快查询速度 6、联合索引 (最左前缀原则)必须带这最左边的列作为条件,从出现范围开始整条索引失效
(id,name,email)
select * from s1 where id = 1800000 and name = 'eva' and email = 'eva1800000@oldboy';
select * from s1 where id = 1800000 and name = 'eva';
select * from s1 where id = 1800000 and email = 'eva1800000@oldboy';
select * from s1 where id = 1800000;
select * from s1 where name = 'eva' and email = 'eva1800000@oldboy';
(email,id,name)
select * from s1 where id >10000 and email = 'eva1800000@oldboy'; 7、条件中写出来的数据类型必须和定义的数据类型一致
select * from biao where name = 666 # 不一致
8、select的字段应该包含order by的字段
select name,age from 表 order by age 比较好
select name from 表 order by age 不好

最新文章

  1. Windows10的革命之路-全新UWP开发平台
  2. Mac--10.8.3下使用apache2方法
  3. MVC3在IIS7.5发布(部署)报403.14错误的解决办法
  4. SASS -- 基本认识
  5. Delphi 实现16进制转字符串及字符串(中文)转16进制
  6. C语言运算符学习笔记
  7. 卷积神经网络CNN总结
  8. java把结果集序列化成json通过out流传给前台步骤
  9. spring学习(一) ———— IOC讲解
  10. 《java并发编程实战》笔记
  11. 我写的RunTime函数之一,为类的某个属性赋值以及方法交换
  12. /etc/sudoers 配置
  13. 构建一个基于UIView的类别
  14. 阿里云RDS同步到本地自建mysql数据库从库
  15. 用VIM设置UTF-8编码的BOM标记
  16. springboot mybatisPlus配置
  17. Gallery学习————检测手机中是否存在外部存储设备
  18. getFullYear 方法
  19. JT796、JT808、JT809、JT1076、JT1077、JT1078部标平台过检道路运输车辆卫星定位系统企业视频监控平台检测登记表
  20. Unix编程第7章 进程环境

热门文章

  1. linux 命令 文件数量统计
  2. CORS-跨域问题:Access-Control-Allow-Origin Header and the ASP.NET Web API
  3. vue---数据列表循环
  4. C语言 运算符优先级
  5. 全基因组关联分析(GWAS)的计算原理
  6. Form表单验证组件
  7. c++11 standardized memory model 内存模型
  8. python-tkinter使用方法——转载(二)
  9. jQuery的基础总结
  10. CF1033C Permutation Game