索引(Index)
- 索引是帮助MySQL高效获取数据的数据结构,索引在小数据量的时候,作用不大,但是在大数据的时候作用非常明显
索引的分类
- 在一个表中,主键索引只能有一个,唯一索引可以有多个
- 主键索引(primary key):唯一的标识,主键不可重复,只能有一个列作为主键
- 唯一索引(unique key):避免重复的列出现,唯一索引可以重复,多个列都可以标识唯一索引
- 常规索引(key/index):默认的,index,key关键字来设置
- 全文索引(FullText):在特定的数据库引擎下才有,可以快速定位数据
索引原则
- 索引不是越多越好
- 不要对进程变动数据加索引
- 小数据量的表不需要索引
- 索引一般加在常用来查询的字段上
权限管理和备份
权限管理(grant)
- 本质读表进行增删改查操作
--创建用户:create user 用户名identified by '密码'
create user yangguang identified by '123456'
--修改密码(修改当前用户密码)
set password =password('123456')
--修改密码(修改指定用户密码)
set password for yangguang=password('123456')
--重命名:rename user 原名字 to 新名字
rename user yangguang to yangguang1
--用户授权 ALL Privileges:全部的权限 库.表
--ALL privileges除了不能给别人授权,其他的权限都有
grant all privileges on *.* to yangguang1
--查询权限
show grant for yangguang1 --查看指定用户的权限
--撤销权限 revoke 权限
revoke all privileges on *.* from yangguang1
--删除用户
drop user yangguang1
MySQL备份
-
MySQL数据库备份的方式
- 直接拷贝物理文件
- 在Sqlyog等可视化工具中手动导出
- 命令行导出 mysqldump
--导出单表 --mysqldump -h 主机 -u 用户名 -p 密码 数据库 表名 > 物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school student >D:/b.sql --导出多表 --mysqldump -h 主机 -u 用户名 -p 密码 数据库 表1 表2 表3 > 物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school student1 student2 student3 >D:/b.sql --导出数据库 --mysqldump -h 主机 -u 用户名 -p 密码 数据库>物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school >D:/c.sql
--导入 --登录的情况下,切换到指定的数据库 --source 备份文件 source d:/a.sql --未登录 mysql -u用户名 -p密码 库名<备份文件