6.17—044—周一
今日所学内容:
一、存储引擎:
二、索引
三、日志查询(log)
四、管理权限
一、存储引擎:
create table t1(
id int auto_increement primary,
name varchar(32) not null default''
)engine=Innodb charset=utf8;
引擎分类:
Innodb:
1)5.5版本以上:默认版本为 Innodb
2)支持事务
3)不支持全文索引
4)索引和数据都在同一个文件中(索引是在.idb结尾的文件中;表的结构是在以.frm结尾的文件中)
MyIsam:
1)5.5版本以下的默认版本
2)不支持事务
3)支持全文索引
4)表结构:.frm | 表数据:.MYD | 表索引:.MYI
memory:
全文索引:sphinx
二、索引
1、索引作用:加快查询的速度
类比:新华字典的目录,可以将索引理解成一个特殊的文件,然后如果没有这个文件的话,查询是从前到后查找数据的,如果有这个文件,会按照一种特殊的数据结构(二叉树)查找数据
2、索引分类:
主键索引:加快查询、不能为空、primary key
唯一索引:加快索引、不能重复、unique(列名)
联合唯一索引:加快查询、不能重复、unique(列名1,列名2)
普通索引中:加快查询,index(”列名“)
3、创建索引
1)创建主键索引
第一种:创建表时创建主键索引
create table t1(
id int suto_increment primary key,
name varchar(32) not null default''
)engine=Innodb charset=utf8;
第二种:已有表,再创建主键
alter table 表名t1 change 新id 旧id int auto_increment primary key;
2)创建唯一索引
第一种:创建表时创建唯一索引
create table t1(
id int suto_increment primary key
name varchar(32) not null default'',
age int not null default'0',
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)
3)创建普通索引
第一种:创建表时创建唯一索引
create table t1(
id int suto_increment primary key,
name varchar(32) not null default'',
age int not null default'0',
index ix_name('name')
)engine=Innodb charset=utf8;
第二种:已有表,再创建唯一索引
create index 索引名称(ix_name) on 表名(t1)(name)
3、删除索引:
drop 索引名称(ix_name) on 表名(t1)
4、使用场景:
在使用频率高的列上加索引
5、索引的缺点:
版本5.3以下:
删除和修改的速度变慢了
版本5.5以下:
删除和修改的速度不是特别的慢
6、索引的使用:
explain 工具
查看sql语句是否用的上索引,或者查看sql执行效率的工具
给执行的sql语句出一个报告,通过此报告的执行效率和效果
ES(elasticsearch)
sql语句的规则:
不建议使用like进行搜索
组合索引最左前缀
Eg:如果组合索引为:(name,email)
where name and email 使用索引
where name 使用索引
where email 不使用索引
三、日志查询(log)
1、慢日志查询(slow log)
日志文件:记录了执行速度特别慢的sql语句
1)开启的步骤:
(1)show variables like '%query%';
(2)set global long_query_time=num; 自己设置慢查询时间num
(3)slow_query_time =on 开启记录,
(4)slow_query_log_file = D:\python\..... 保存的文件路径
2、普通日志记录(general log)
sql审计(记录sql的操作语句)
show variables like '%general%';
set global general_log = on
四、管理权限
1、创建用户
create user '用户名'@'ip地址' identified by '密码'
Eg:
create user 'han'@'192.168.1.123' identified by '123'
create user 'han'@'192.168.1.$' identified by '123'
create user 'han'@'$' identified by '123'
2、删除用户
drop user '用户名'@'ip地址'
3、修改用户
rename user '旧用户名'@'ip地址' to user '新用户名'@'ip地址'
4、修改密码
set password for '用户名'@'IP地址' = password('新密码')
5、授权
grant 权限 on 数据库.表 to '用户名'@'IP地址'
grant select on db1.'*' to 'han'@'$'
grant select on '*' to 'han'@'$'
grant select,insert,delete on db1.'*' to 'han'@'$'
6、解除权限
结束后要刷新: flush privileges
原文地址:https://www.cnblogs.com/Chinesehan/p/11041946.html
- Webpack 实用技巧高效实战
- oracle表空间不足相关问题解决办法
- 手工打造分布式爬虫
- (64) 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件 / 计算机程序的思维逻辑
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts2.dispatcher.
- Python协程演进过程
- Android TV开发简介
- (59) 文件和目录操作 / 计算机程序的思维逻辑
- Rdseed与SAC的安装
- Python爬虫大战京东商城
- (77) 异步任务执行服务 / 计算机程序的思维逻辑
- Unity Android Plugin开发指南
- Python还能做这个?真的好棒棒耶!
- java中Comparator的用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 3. Pandas系列 - DataFrame操作
- 4. Pandas系列 - 基本功能和统计操作
- 面经手册 · 第8篇《LinkedList插入速度比ArrayList快?你确定吗?》
- 无所不能的Embedding 2. FastText词向量&文本分类
- 5. Pandas系列 - 重建索引
- 6. Pandas系列 - 迭代
- Java 虚拟机基础原理:功能,内存管理,类的加载机制,分析字节码执行过程
- Stack有性能问题?推荐用ArrayDeque队列!队列是什么?什么是双端队列、延迟系列、阻塞队列,全是知识盲区!
- 纯CSS实现照片墙效果
- Tungsten Fabric知识库丨构建、安装与公有云部署
- 7. Pandas系列 - 排序和字符串处理
- JVM调优,程序员必须掌握的知识
- 5分钟Flink - 侧输出流(SideOutput)
- 数据库技术:MySQL 基础和 SQL 入门,单表、约束和事务
- ConcurrentHashMap的size方法是线程安全的吗?