索引;账户管理

索引是什么

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

更通俗的说,数据库索引好比是字典前面的目录,能加快数据库的查询速度

索引目的

索引的目的在于提高查询效率

视图和索引的目的:方便查找

原理

通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据。

哪些情况需要创建索引

数据量很大而且这个字段经常查

查询添加索引与不添加索引的效率

-- 开启运行时间监测:

set profiling=1;

-- 查找第1万条数据ha-99999

select * from test_index where title='ha-99999';

-- 查看执行的时间:

show profiles;

为表title_index的title列创建索引:

createindextitle_indexontest_index(title(10));

执行查询语句:

select*fromtest_indexwheretitle='ha-99999';

再次查看执行的时间

showprofiles;

数据库的索引(分段查询)


B树

索引的使用

-- 查看索引

show   index  from  表名;

-- 创建索引

如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致

字段类型如果不是字符串,可以不填写长度部分

create  index索引  名称 on  表名(字段名称(长度))

-- 删除索引:

drop  index  索引名称  on  表名;

账户管理

目的:保证数据库的安全性和稳定性

注意:

1)进行账户操作时,需要使用root账户登录,这个账户拥有最高的实例级权限

2)通常都使用数据库级操作权限

授予权限:

1、查看所有用户

所有用户及权限信息存储在mysql数据库的user表中


mysql不能随便使用
user表--root信息

查看user表的结构

desc user;

select user,host from user; #前面user,host字段,后面的user是表

user的一列----可以登录mysql的用户

host--可以通过哪个地方登陆

localhost---只能在本地电脑登录(想登录其他人的,知道密码也不能登录)

root-localhost---往里面添加新的用户

host一列中的%表示可以在任何地方可以登录

authentication_string表示密码,为加密后的值

2、创建账户&授权

创建的前提:必须以root管理员账户登录

在公司是被授权,尽量不直接用root用户

-- 创建账户并授予所有权限

grant select on aashford.* to 'laoweng'@'localhost' identified by 'xxxx';

只授予了查询权限,更新,删除都不可以

创建一个laoli的账号,密码为12345678,可以任意电脑进行链接访问, 并且对aashford数据库中的所有表拥有所有权限

grant  all  privileges  on  aashford.*  to   "laoli"@"%" identified by"  12345678";

账户操作

1. 修改权限

grant   权限名称  on  数据库   to   账户@主机  with  grant   option;

-- 刷新权限

flush privileges;

2、修改密码

使用root登录,修改mysql数据库的user表

使用password()函数进行密码加密

update  user  set  authentication_string=password('新密码')  where  user='用户名';

注意修改完成后需要刷新权限

刷新权限:flushprivileges

3、远程登录慎用

数据库别用远程登录,用SSH链接(几乎无法破解)

4.、删除账户

语法1:使用root登录(推荐使用)

drop  user  '用户名'@'主机';

例:drop  user  'laoweng'@'%';

语法2:使用root登录,删除mysql数据库的user表中数据

delete  from  user  where  user='用户名';

例:delete  from  user  where  user='laoweng';

-- 操作结束之后需要刷新权限

flush privileges

你可能感兴趣的:(索引;账户管理)