当前位置: 首页 > news >正文

Python day 44 :数据库的存储引擎/索引/权限管理

## 存储引擎

```python
分类:
    Innodb:
        1,默认版本5.5及以上
        2,支持事务
        3,不支持全文索引(MySQL 5.6 及以后的版本,MyISAM 和             InnoDB 存储引擎均支持全文索引;)
        4,索引和数据都是在同一个文件中: .ibd
          表的结构在.frm文件中
    MyIsam:
        1,默认版本在5.5以下
        2,不支持事务
        3,支持全文索引
        4,表结构:.frm
          表数据:.MYD
          表索引:.MYI
   全文所以插件:sphinx. 

```

## 索引



```python
作用: 加快查询的速度
类比: 新华字典的目录, 可以将索引理解成一个特殊的文件, 然后如果没有这个文件的话, 查询是从前到后查找数据的,如果有这个文件的话, 会按照一种特殊的数据结构(二叉树)查找数据
分类:
    主键索引: 加快查询 + 不能重复 + 不能为空  primary key
    唯一索引: 加快查询 + 不能重复   unique(列名)
    联合唯一索引: 加快查询 + 不能重复 unique(列名1,列名2)
    普通索引: 加快查询    index('列名')
主键索引创建:
      第一种:create table ti(id int auto_increment primary key,name varchar(32) not null default "")engine=Innodb charse=utf8;
    第二种:alter table t1 change id id int auto_increment primary key;
唯一索引创建:
    第一种:create table t1(id int auto_increment primary key,name varchar(32) not null default "",unique ix_name("name"))engine=Innodb charset=utf8;
    第二种:create unique index ix_name on t1(name)
    格式:create unique index 索引名称 on 表名 (列名)
普通索引创建:
    第一种:create table t1(in int auto_increment key,name varchar(32) not null default "",index ix_name("name"))engine=Innodb charset=utf8;
     第二种:create index ix_name on t1(name)
 索引的删除操作:
    drop index 索引名称 on 表名(列名);
    drop index ix_name on t1(name);
 
"索引的使用场景:使用频繁的列上加一个索引!

索引的使用:
    explain 工具
        :查看sql语句是否用得上索引,或者查看sql执行效率的工具
          给执行的SQL语句一个报告,通过次报告来判断sql语句的执行效率和效果
     SQL语句的规则:
        1,不建议使用like进行搜索  ...不使用索引
        2,组合索引最左前缀:
            如果组合索引为:(name,email)
            where name and email...   使用索引
             where name...             使用索引
             where email...              不适用索引
        3,函数,比如max/count(name)... 函数都不使用索引
慢日志查询(slow log):
    属于日志文件:记录了执行速度特别慢的SQL语句
    开启步骤:
        1,show variables like "%query%";
        2,set global long_query_time=0.5(设置慢查询时间)
        3,show_query_log=ON
        4,slow_query_log_file=E:\program\mysql-5.6.44-winx64\data\oldboy-slow.log
 普通日志:(general log):
        SQL审计(记录sql的每一条操作语句)
        show variables like "%general%";
        见下图:
        set global general_log = ON;
       
```

![general log](general log.png)

## 权限管理

```python
创建用户:
    create user "用户名"@"IP地址" identified by "密码";
    create user "pengsir"@"192.168.1.%" identified by"123"
    create user "pengsir"@"localhost" identified by"111"
    create user "pengsir"@"%" identifide by"222"
删除用户:
    drop user "用户名"@"IP地址";
修改用户:
    rename user "用户名"@"IP地址" to "新用户名"@"IP地址";
修改密码:
    set password for "用户名"@"IP地址" =Password("新密码")
授权:
    grant 权限 on 数据库.表 to "用户"@"IP地址";   
    grant select on db1.* to "pengsir"@"%";
       grant select on *.* to "pengsir"@"%";
    grant select,insert,delete on db1.* to "pengsir"@"%";
    最后:flush privileges;(执行这一步才将授权成功)
    
```

 

转载于:https://www.cnblogs.com/huhongpeng/p/11042385.html

相关文章:

  • vsphere6.7-虚拟机与ESXI时间同步
  • 结合案例深入解析迭代器模式
  • laravel5.5入门-安装和认证
  • 没事干 回忆下快排
  • 并发
  • 微信-小程序-开发文档-服务端-模板消息:templateMessage.deleteTemplate
  • SmartGit 合并分支,图文
  • mysql创建用户
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • linux内核代码基础篇(一)一目录架构说明
  • 基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
  • WPF — Grid布局中行的高度和列的高度值定义的三种形式
  • 判断两个字符串是否互为变形词
  • Blob
  • JVM学习笔记:对象的内存布局和访问定位
  • 07.Android之多媒体问题
  • crontab执行失败的多种原因
  • eclipse(luna)创建web工程
  • Fabric架构演变之路
  • JavaScript设计模式与开发实践系列之策略模式
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • leetcode388. Longest Absolute File Path
  • MySQL-事务管理(基础)
  • scrapy学习之路4(itemloder的使用)
  • V4L2视频输入框架概述
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 从PHP迁移至Golang - 基础篇
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 时间复杂度与空间复杂度分析
  • 学习笔记TF060:图像语音结合,看图说话
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #ifdef 的技巧用法
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十六)串口UART
  • (十一)图像的罗伯特梯度锐化
  • (转)菜鸟学数据库(三)——存储过程
  • .NET delegate 委托 、 Event 事件
  • .net MySql
  • .net 怎么循环得到数组里的值_关于js数组
  • ::
  • @angular/cli项目构建--http(2)
  • @hook扩展分析
  • [20150321]索引空块的问题.txt
  • [2023-年度总结]凡是过往,皆为序章
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [ACM] hdu 1201 18岁生日
  • [android] 手机卫士黑名单功能(ListView优化)
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [CF482B]Interesting Array
  • [docker] Docker的私有仓库部署——Harbor