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 不好

MySQL数据库使用时注意事项的更多相关文章

  1. MYSQL数据库建表注意事项

    1.库名.表名.字段名必须使用小写字母,“_”分割. 原因: MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小 ...

  2. 新版MySQL开始使用时遇到的问题(时区、权限):

    新版MySQL(本人Server version: 8.0.15)在刚开始使用时遇到的问题: 查看mysql安装版本:命令窗口 时区问题解决(The server time zone value 'Ö ...

  3. MySQL数据库使用报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    今天MySQL数据库,在使用的过程中一直报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement be ...

  4. MySql数据库索引优化注意事项

    设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率.设计MySql索引的时候有一下几点注意: 1,创建索引 对于查询占主要的应用来说,索引显得尤为重要.很多时候性能问题很简单的就是因为 ...

  5. MySQL数据库使某个不是主键的字段唯一

    在使用MySQL数据的过程中有时候我们须要某个不是主键的字段不反复.这个时候就要用到SQL的UNIQUE约束了. 以下摘抄自w3school里的一段介绍: UNIQUE 约束唯一标识数据库表中的每条记 ...

  6. oracle中sqlldr工具使用时注意事项

    1.命令写在一行:如,sqlldr sh/&sh_pass@&connect_string control=&ctl_file data=&dat_file log=& ...

  7. angular js 上传插件 ng-file-upload 使用时注意事项

    项目框架为angular js,需要用到文件上传,百度之后先选择了angular-file-upload,githuab上API文档很全,想要具体了解,可以仔细研究一下.在这里简单回顾一下自己使用的插 ...

  8. UITableViewCell使用时注意事项

    1,注意使用重用机制(有利于提高效率) 2,做到通过改变模型去间接改变UI样式(做到永久改变,无论怎样拖动刷新,都不会恢复改变) 3,在通过传递模型给Cell控件布局时,记得完全覆盖(嗯,不好解释,主 ...

  9. grid++报表使用时注意事项

    #开始使用:Grid++Report 可以在 Visual C#.Net 与 Visual Basic.Net 下的 WinForm 项目中使用.在项目中使用 Grid++Report 之前,首先必须 ...

随机推荐

  1. 【2019.09.19】数独(Sudoku)游戏之我见(软工实践第三次作业)

    Github项目地址:https://github.com/MokouTyan/suduku_131700101 [2019.09.20]更新:代码经过Code Quality Analysis工具的 ...

  2. Java多个线程顺序打印数字

    要求 启动N个线程, 这N个线程要不间断按顺序打印数字1-N. 将问题简化为3个线程无限循环打印1到3 方法一: 使用synchronized 三个线程无序竞争同步锁, 如果遇上的是自己的数字, 就打 ...

  3. Centos7搭建FTP服务详细过程

    Centos7搭建FTP服务详细过程https://blog.csdn.net/sinat_30802291/article/details/81706152

  4. ROS tf-增加坐标系

    博客参考:https://www.ncnynl.com/archives/201702/1312.html ROS与C++入门教程-tf-增加坐标系 说明: 介绍如何为TF增加额外固定的坐标系 为何增 ...

  5. springboot:redis反序列化发生类型转换错误

    明明是同一个类,在反序列时报类型转换错误,真实奇怪.经查找资料,说是引入了devtools的缘故. 注释掉以下内容: <dependency> <groupId>org.spr ...

  6. 使用EF 4.1的DbContext的方法大全

    简述:EF4.1包括Code First和DbContext API.DbContext API为EF提供更多的工作方式:Code First,Database First和Model First. ...

  7. elasticsearch 管理常用命令集合

    elasticsearch rest api遵循的格式为: curl -X<REST Verb> <Node>:<Port>/<Index>/<T ...

  8. Alpha版本2发布

    0.日常开头 这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <https://www.cnblogs.com/harry240/p/11524162.html> 团 ...

  9. word 转化为PDF 目录没了

    https://jingyan.baidu.com/article/ca00d56c5d5f8de99febcf54.html 点文件-->导出-->创建PDF-->选项--> ...

  10. 《Redis Mysql 双写一致性问题》

    一:序 - 最近在对数据做缓存时候,会涉及到如何保证 数据库/Redis 一致性问题. - 刚好今天来总结下 一致性问题 产生的问题,和可能存在的解决方案. 二:(更新策略)-  先更新数据库,后更新 ...