day-44(2)mysql
ps :
针对mysql的:
start transaction
drop table t1;
rollback;
无法回滚删除操作,
其他的数据库中也是一样的, 但是除了oracle(flashback)
现在阿里云上, 数据库不建议使用外键,效率问题
存储引擎:
create table t1(
id int auto_increment primary key,
name varchar(32) not null default ''
)engine=Innodb charset=utf8;
分类:
Innodb
1.(默认版本包含5.5)
2.支持事务
3.不支持全文索引
4.索引和数据都是在同一个文件中, .ibd
表的结构实在.frm文件中
MyIsam
1.(默认版本5.5以下 5.3)
2.不支持事务
3.支持全文索引(类似百度搜索框在数据库搜索)
4..frm: 表结构
.MYD: 表数据
.MYI: 表索引
memory
全文索引:
sphinx
1).文章,新闻等安全性要求不高的,选myisam
2). 订单,资金,账单,火车票等对安全性要求高的,选用innodb
3). 对于临时中转表,可以用memory型 ,速度最快
索引:
作用: 加快查询的速度
类比: 新华字典的目录, 可以将索引理解成一个特殊的文件, 然后如果没有这个文件的话, 查询是从前到后查找数据的,
如果有这个文件的话, 会按照一种特殊的数据结构(二叉树)查找数据
分类:
主键索引: 加快查询 + 不能重复 + 不能为空 primary key
唯一索引: 加快查询 + 不能重复 unique(列名)
联合唯一索引: 加快查询 + 不能重复 unique(列名1,列名2)
普通索引: 加快查询 index('列名')
创建:
主键索引:
第一种:
create table t1(
id int auto_increment primary key,
name varchar(32) not null default ''
)engine=Innodb charset=utf8;
第二种:
alter table t1 change id id int auto_increment primary key;
唯一索引:
第一种:
create table t1(
id int auto_increment primary key,
name varchar(32) not null default '',
unique ix_name ('name')
)engine=Innodb charset=utf8;
第二种:
create unique index 索引名称(ix_name) on 表名(t1)(name);
create unique index 索引名称(ix_name_age) on 表名(t1)(name,age);
普通索引:
第一种:
create table t1(
id int auto_increment primary key,
name varchar(32) not null default '',
index ix_name ('name')
)engine=Innodb charset=utf8;
第二种:
create index 索引名称(ix_name) on 表名(t1)(name);
删除:
drop 索引名称(ix_name) on 表名(t1);
查看索引:
show index from 表名;
场景:
使用频繁的列上加一个索引
索引的缺点:
版本5.3以下:
删除和修改的速度就变慢了
版本5.5以上:
删除和修改的速度不是特别的慢
create table t12(
id int auto_increment primary key,
name varchar(32) not null default '',
email varchar(32) not null default ''
)engine=Innodb charset=utf8;
索引的使用:
explain 工具
查看sql语句是否用的上索引, 或者查看sql执行效率的工具
给执行的SQL语句出一个报告, 通过此报告来判断sql语句的执行效率和效果
id
查询顺序标识
select_type
查询类型
SIMPLE 简单查询
PRIMARY 最外层查询
SUBQUERY 映射为子查询
DERIVED 子查询
UNION 联合
UNION RESULT 使用联合的结果
...
table
正在访问的表名
type
查询时的访问方式,性能:all < index < range < index_merge < ref_or_null < ref < eq_ref < system/const
ALL 全表扫描,对于数据表从头到尾找一遍
INDEX 全索引扫描,对索引从头到尾找一遍
RANGE 对索引列进行范围查找
REF 根据索引查找一个或多个值
CONST 常量
表最多有一个匹配行,因为仅有一行,在这行的列值可被优化器剩余部分认为是常数,
const表很快,因为它们只读取一次。
select nid from tb1 where nid = 2 ;
SYSTEM 系统
表仅有一行(=系统表)。这是const联接类型的一个特例。
possible_keys
可能使用的索引
key
真实使用的
key_len
MySQL中使用索引字节长度
rows
mysql估计为了找到所需的行而要读取的行数 ------ 只是预估值
extra
该列包含MySQL解决查询的详细信息
“Using index”
比较好,使用了索引
“Using where”
比较好,使用了索引
“Using temporary”
没用到索引,或sql语句有问题
“Using filesort”
没用到索引,或sql语句有问题
ES (elasticsearch )
SQL语句的规则:
- 不建议使用 like 进行搜索
-不建议使用函数
-类型不一致(规定的和传入的不一致)
-order by 排序的列没有索引,不建议
- 组合索引最左前缀
如果组合索引为:(name,email)
where name and email -- 使用索引
where name -- 使用索引
where email -- 不使用索引
慢日志查询(slow log):
日志文件: 记录了执行速度特别慢的SQL语句
开启的步骤:
1. show variables like '%query%';
2. set global long_query_time = 1; 设置慢查询的时间
3. set global slow_query_log = ON 开启慢日志
4. set global slow_query_log_file = E:\program\mysql-5.6.44-winx64\data\oldboy-slow.log 慢日志文件
普通日志记录(general log):
SQL审计 (记录sql的操作语句)
show variables like '%general%';
+------------------+------------------------------------------------+
| Variable_name | Value |
+------------------+------------------------------------------------+
| general_log | ON |
| general_log_file | E:\program\mysql-5.6.44-winx64\data\oldboy.log |
+------------------+------------------------------------------------+
set global general_log = ON;
权限管理:
创建用户
create user '用户名'@'IP地址' identified by '密码';
creaee user 'zekai'@'192.168.1.123' identified by '123qwe';
creaee user 'zekai'@'192.168.1.%' identified by '123qwe';
create user 'zekai'@'%' identified by '123qwe';
删除用户
drop user '用户名'@'IP地址';
修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
修改密码
set password for '用户名'@'IP地址' = Password('新密码')
查看权限
show grants for '用户'@'IP地址'
授权:
grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权
grant select on db1.* to 'zekai'@'%';
grant select on *.* to 'zekai'@'%';
grant select, insert, delete on db1.* to 'zekai'@'%';
*.* 所有
select, insert, delete 权限
取消授权:
revoke 权限 on 数据库.表 from '用户'@'IP地址'
记住:
flush privileges;
转载于:https://www.cnblogs.com/klw1/p/11042208.html
day-44(2)mysql相关推荐
- 理解 OpenStack 高可用(HA) (6): MySQL HA
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- 数据库系统原理与应用教程(058)—— MySQL 练习题(二):单选题
数据库系统原理与应用教程(058)-- MySQL 练习题(二):单选题 1.在成绩表中查询绩点在 3.7-4.0 之间,并且挂科数为 0 的学生的所有信息.下列SQL语句不正确的是(D). A.SE ...
- Mysql(2)——mysql的配置文件信息(基本信息)
/etc/mysql/mysql.conf.d/mysqld.cnf该路径是mysql配置文件的路径,用vim编辑器打开:vim /etc/mysql/mysql.conf.d/mysqld.cnf ...
- Mysql数据库(九)——mysql高阶语句(下)
Mysql数据库(九)--mysql高阶语句(下) 一.函数 1.数学函数 2.聚合函数 3.字符串函数 4.日期时间函数 二.存储过程 1.简介 2.优点 3.语法 ①.例 ②.参数分类 ③.带参数 ...
- Mysql数据库(八)——mysql高阶语句(中)
Mysql数据库(八)--mysql高阶语句(中) 一.正则表达式(同shell脚本的正则表达式) 1.以"."代替任意一个字符 2.匹配前面字符多次 3.匹配前面字符至少一次 4 ...
- Mysql数据库(七)——mysql高阶语句(上)
Mysql数据库(七)--mysql高阶语句(上) 一.按关键字排序 1.单字段排序 2.多字段排序 二.或/且的运用 三.查询不重复记录 四.对结果进行分组 五.限制结果条目 六.设置别名 使用场景 ...
- Mysql数据库(五)——mysql事务及引擎
Mysql数据库(五)--mysql事务及引擎 一.事务 1.事务的概念 2.事务的ACID特点 ①.原子性(Atomicity) ②.一致性(Consistency) ③.隔离性(Isolation ...
- Mysql数据库(四)——mysql索引相关知识
Mysql数据库(四)--mysql索引相关知识 一.索引的概念 二.索引的优缺点 1.优点 2.缺点 三.创建索引的原则 四.索引的分类和创建方法 1.普通索引 ①.直接创建索引 ②.修改表方式创建 ...
- Mysql数据库(三)——mysql数据库高级操作
Mysql数据库(三)--mysql数据库高级操作 一.指定主键的另一种方式 二.克隆/复制一个表 1.方法一 2.方法二 三.清空表,删除表内数据 1.方法一 2.方法二 3.方法三 4.三个删除方 ...
- Mysql数据库(二)——mysql数据库管理
Mysql数据库(二)--mysql数据库管理 一.常用数据类型 二.查看数据库结构 1.进入数据库 2.查看数据库的信息 3.查看数据库中表的信息 4.显示数据表的结构(字段) 三.SQL语句概述 ...
最新文章
- 勒索软件可能已被“终极”解决
- 简明python教程 豆瓣-Python 有哪些入门学习方法和值得推荐的经典教材?
- 【MCtalk讨论】 短视频平台出路在何方?
- oracel Pipelined pipe row的用法
- mac 没有所有开发者_为什么开发人员应该像产品所有者那样思考
- jQuery的name选择器 模糊匹配
- Linux下openSSL安装并颁发证书
- 暑假计划(7月23日-8月21日)
- 利用git进行word文档的版本管理
- Cypress下载安装+问题记录
- cve_2019_0708复现踩坑
- 为什么你的有道云笔记越来越不好用?三个细节解决你的烦恼
- 电脑中病毒,文件夹变成快捷方式
- c++ 统计指定字母开头单词的数量
- 免费制作在线网站教程
- ajax瀑布流插件,jQuery瀑布流无限加载插件:jquery.falless.js
- 申宝在线炒股医药板块大涨
- 自己动手、丰衣足食!箭头 → ← → ← ---2
- mysql 查询最接近某时间的数据
- 常用的DOS命令(cmd基本操作)
热门文章
- FPU烤机是什么意思 FPU烤机用什么软件
- “校园舆情监测系统”网站设计及网页编辑总结
- Live Messenger ,Gmail ,Orkut ,Wallop
- linux创建后门账户,Linux后门
- java后台程序员转android 之《三B》 支付宝支付 client join server 及采坑记录
- 关于DOTS的个人总结
- 高权重网站外链如何建设和打造?
- YOUTH(年轻)——Samuel Ullman(塞缪尔·乌尔曼)
- 桌面一直出现计算机符号,电脑桌面图标有箭头怎么办 电脑桌面图片箭头去掉方法【图文】...
- BYOD 2.0的安全管理:MAM