时间:2021-10-13 09:10:47 | 栏目:Mysql | 点击:次
mysql权限和索引
mysql的最高用户是root,
我们可以在数据库中创建用户,语句为CREATE USER 用户名 IDENTIFIED BY '密码',也可以执行CREATE USER 用户名 语句来创建用户,不过此用户没有密码,可以将用户登录后进行密码设置;删除用户语句为DROP USER 用户;更改用户名的语句为RENAME USER 老用户名 to 新用户名;
修改密码语句为set password=password('密码');
高级用户修改别的用户密码的语句为SET PASSWORD FOR 用户=PASSWORD('密码'); 。
关于赋予权限的操作有以下几种,
查看用户权限语句为show grants for 用户;
赋予用户权限语句为grant 权限 on . to 用户,第一个号代表数据库,第二个号代表要赋予权限的表;
取消用户权限的语句REVOKE CREATE ON . FROM 用户;刷新的语句是FLUSH PRIVILEGES。
mysql的索引可以让我们对数据库中数据的查找提供更快的速度,我们在编程的时候,条件上使用类那个列,就可以将查询涉及到的列设计为索引。
索引有普通索引,设为普通索引对列的数据没有影响,但是对数据的查找速度进行了优化;唯一索引设为唯一索引的列中的值是唯一的,同样也是对数据的查找速度进行了优化;主键索引就是设为主键列会自动添加主键索引,一个表只能有一个主键列,此列不允许有空值,一般是在建表的时候同时创建主键索引;全文索引主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。fulltext索引配合match against操作使用,而不是一般的where语句加like。它可以在create table,alter table ,create index使用,不过目前只有char、varchar,text 列上可以创建全文索引。值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE index创建fulltext索引,要比先为一张表建立fulltext然后再将数据写入的速度快很多;还有组合索引,这种索引可以将两个列联合起来作为条件一起查查询,单独一个列作为条件查询不会有索引的效果。
创建索引的语句为CREATE 索引种类[不写为普通索引] INDEX 索引名称 ON 表(列)。
删除索引语句为DROP INDEX 索引名称ON 表。
索引的缺点:
1.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行insert、update和delete。因为更新表时,不仅要保存数据,还要保存一下索引文件。
2.建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会增长很快。索引只是提高效率的一个因素,如果有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。