mysql权限和索引

mysql的最高用户是root,

我们可以在数据库中创建用户,语句为CREATE USER 用户名 IDENTIFIED BY '密码',也可以执行CREATE USER 用户名 语句来创建用户,不过此用户没有密码,可以将用户登录后进行密码设置;删除用户语句为DROP USER 用户;更改用户名的语句为RENAME USER 老用户名 to 新用户名;

修改密码语句为set password=password('密码');

高级用户修改别的用户密码的语句为SET PASSWORD FOR 用户=PASSWORD('密码'); 。

image

关于赋予权限的操作有以下几种,

查看用户权限语句为show grants for 用户;

赋予用户权限语句为grant 权限 on.to 用户,第一个号代表数据库,第二个号代表要赋予权限的表;

取消用户权限的语句REVOKE CREATE ON.FROM 用户;刷新的语句是FLUSH PRIVILEGES。

image

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.建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会增长很快。索引只是提高效率的一个因素,如果有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

image

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  3. Android(安卓)- Manifest 文件 详解
  4. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  5. Selector、shape详解(一)
  6. [android源码下载索引贴】微信+二维码那都不是事......
  7. android2.2资源文件详解4--menu文件夹下的菜单定义
  8. Android发送短信方法实例详解
  9. Android(安卓)读取资源文件实例详解

随机推荐

  1. 互联网/电商/广告常见的术语
  2. 给Swagger升级了新版本,没想到居然有这么
  3. 记一次愚蠢的操作--String不可变性
  4. 性能优越的轻量级日志收集工具,微软、亚马
  5. PMP晋级之路
  6. 一次授权的安全测试
  7. 给Swagger换了个新皮肤,瞬间高大上了!
  8. 程序员的快乐就是这么朴素无华且枯燥
  9. 微服务聚合Swagger文档,这波操作是真的香!
  10. Elasticsearch 升级 7.x 版本后,我感觉掉