15.MySQL

7.索引

MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构。提取句子主干就可以得到索引的本质:索引是数据结构。

7.1索引的分类

在一个表中,主键的列只能有一个,唯一索引可以有多个
主键索引(PRIMARY KEY)
  唯一标识,主键不可重复,只能有一个列作为主键
唯一索引(UNIQUE KEY)
  避免重复的列出现,唯一索引可以重复,多个列都可以标识位 唯一索引
常规索引(KEY/INDEX)
  默认的,index。key关键字来设置
全文索引(FullText)
  在特定的数据库引擎下才有,MulSAM
  快速定位数据

 -- ========================7.1索引分类=============================
 -- 索引的使用
 -- 1、在创建表的时候给字段增加索引
 -- 2、创建完毕后,增加索引
 
 -- 显示所有的索引信息
 SHOW INDEX FROM student
 
 -- 增加一个全文索引索引名(列名)
 ALTER TABLE school.`student` ADD FULLTEXT INDEX (`studentname`);
 
 -- EXPLAIN 分析sql执行的状况,查看查了多少条数据出的结果
 EXPLAIN SELECT * FROM student; -- 非全文索引
 EXPLAIN SELECT * FROM student WHERE MATCH(studentname) AGAINST('李');

在这里插入图片描述
  
  

7.2测试索引

索引在小数据量的时候,用处不大,但是在大数据量的时候,区别十分明显
– 增加一个常规索引
– CREATE INDEX 索引名(格式:id_表名_字段名) on 表名(字段);
  
CREATE INDEX id_app_user_name ON app_user(name);
EXPLAIN SELECT * FROM app_user_ WHERE name = ‘用户9999’; – 分析查询这个数据用了多少行
  
  

7.3索引原则

· 索引不是越多越好
· 不要对经常变动的数据加索引
· 小数据量的表不需要加索引
· 索引一般加在常用来查询的字段上
  

索引的数据结构

Hash 类型的索引
Btree:InnoDB 的默认数据结构
  
阅读:http://blog.codinglabs.org/articles/theory-of-mysql-index.html
  
  

8、权限管理和备份

8.1、用户管理

SQL yog可视化管理

SQL 命令操作

用户表:mysql.user
在这里插入图片描述本质:对这张表增删改查
  

-- ==================8.权限管理和备份=======================
-- 创建用户:CREATE USER 用户名 IDENTIFIED BY '密码'
 CREATE USER mai IDENTIFIED BY '123456'

-- 修改密码(修改当前用户密码)
SET PASSWORD = PASSWORD('123456')
-- 修改密码(修改指定用户密码)
SET PASSWORD FOR mai = PASSWORD('111111')

-- 重命名 RENAME USER 原来名字 TO 新的名字
RENAME USER mai TO maishuzhou

-- 用户授权 ALL PRIVILEGES 全部的权限,除了(GRANT)给别人授权其他都能干
-- *.*针对所有的表
GRANT ALL PRIVILEGES ON *.* TO maishuzhou
 
-- 查询权限
SHOW GRANTS FOR maishuzhou
 
-- 撤销权限 REVOKE
REVOKE ALL PRIVILEGES ON *.* FROM maishuzhou
 
-- 删除用户
DROP USER maishuzhou

8.2、MySQL备份

为什么要备份:
  保证重要数据不丢失
  数据转移
  
MySQL数据库备份的方式:
  直接拷贝物理文件
  在SQLyog这种可视化工具中手动导出
    右键数据库/表,选择备份
在这里插入图片描述
  
  使用命令行:mysqldump 导出
  
导出一张表:
#mysqldump -h主机 -u用户名 -p密码 数据库 表名 > 物理磁盘位置/文件名
mysqldump -hlocalhost -uroot -p123456 school student >G:/a.sql
  
导出多张表:
#mysqldump -h主机 -u用户名 -p密码 数据库 表1 表2 表3 > 物理磁盘位置/文件名
mysqldump -hlocalhost -uroot -p123456 school student result subject >G:/b.sql
  
导出一个数据库:
#mysqldump -h主机 -u用户名 -p密码 数据库 > 物理磁盘位置/文件名
mysqldump -hlocalhost -uroot -p123456 school >G:/c.sql
  
导入一张表:
mysql -uroot -p123465
use school;
source g:/a.sql

musql -u用户名 -p密码 库名 < 备份文件

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值