MySQL数据库使用时注意事项
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数据库使用时注意事项的更多相关文章
- MYSQL数据库建表注意事项
1.库名.表名.字段名必须使用小写字母,“_”分割. 原因: MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小 ...
- 新版MySQL开始使用时遇到的问题(时区、权限):
新版MySQL(本人Server version: 8.0.15)在刚开始使用时遇到的问题: 查看mysql安装版本:命令窗口 时区问题解决(The server time zone value 'Ö ...
- 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 ...
- MySql数据库索引优化注意事项
设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率.设计MySql索引的时候有一下几点注意: 1,创建索引 对于查询占主要的应用来说,索引显得尤为重要.很多时候性能问题很简单的就是因为 ...
- MySQL数据库使某个不是主键的字段唯一
在使用MySQL数据的过程中有时候我们须要某个不是主键的字段不反复.这个时候就要用到SQL的UNIQUE约束了. 以下摘抄自w3school里的一段介绍: UNIQUE 约束唯一标识数据库表中的每条记 ...
- oracle中sqlldr工具使用时注意事项
1.命令写在一行:如,sqlldr sh/&sh_pass@&connect_string control=&ctl_file data=&dat_file log=& ...
- angular js 上传插件 ng-file-upload 使用时注意事项
项目框架为angular js,需要用到文件上传,百度之后先选择了angular-file-upload,githuab上API文档很全,想要具体了解,可以仔细研究一下.在这里简单回顾一下自己使用的插 ...
- UITableViewCell使用时注意事项
1,注意使用重用机制(有利于提高效率) 2,做到通过改变模型去间接改变UI样式(做到永久改变,无论怎样拖动刷新,都不会恢复改变) 3,在通过传递模型给Cell控件布局时,记得完全覆盖(嗯,不好解释,主 ...
- grid++报表使用时注意事项
#开始使用:Grid++Report 可以在 Visual C#.Net 与 Visual Basic.Net 下的 WinForm 项目中使用.在项目中使用 Grid++Report 之前,首先必须 ...
随机推荐
- SSL 安全协议 以及 如何认证
目录 ssl安全协议 以及 认证 什么是协议 http劫持 ssl是什么 ssl 证书 概念 3种类型ssl 证书 ssl认证:阿里云免费认证 配置 Nginx的ssl认证 nginx的ssl证书(一 ...
- HIDL概述【转】
本文转载自:https://blog.csdn.net/u013357557/article/details/84561457 HIDL背景Treble 是 Google Android 团队的一项重 ...
- 升级ruby的版本 https://gems.ruby-china.com/
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 1.主机环境如下: 1 [root@test ~]# cat /et ...
- R3 x64枚举进程句柄
转载:https://blog.csdn.net/zhuhuibeishadiao/article/details/51292608 需要注意的是:在R3使用ZwQueryObject很容易锁死,需要 ...
- 【翻译】Flink Table Api & SQL —Streaming 概念 —— 查询配置
本文翻译自官网:Query Configuration https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/s ...
- [LeetCode] 324. Wiggle Sort II 摆动排序 II
Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3]... ...
- kexue shangwang
根据实践,pptp.IPsec甚至OpenVPN等kexue上网法已经无法顺利翻越GFW.通过抓包可知,GFW会将pptp的握手期间的ack包吞掉,导致本地一直无法收到服务器端的响应.而OpenVPN ...
- System.gc()介绍
System.gc()用于垃圾收集器,调用垃圾收集器将回收未使用的 System.gc()进行回收的准则: 回收没有被任何可达变量指向的对象 JDK实现 public static void gc() ...
- 通过 PECL 安装 PHP 扩展(以 CentOS7 中安装 swoole 为例)
原文地址:https://blog.csdn.net/kikajack/article/details/82495190 常用工具PECL 和 phpize官网文档 PHP 有大量的扩展可以使用,比如 ...
- python爬虫4猫眼电影的Top100
1 查看网页结构 (1)确定需要抓取的字段 电影名称 电影主演 电影上映时间 电影评分 (2) 分析页面结构 按住f12------->点击右上角(如下图2)---->鼠标点击需要观察的字 ...