热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python第四十四天存储引擎,索引,慢日志,权限管理

1.存储引擎createtabletest(idintauto_incrementprimarykey,namevarcharnotnulldefault
1.存储引擎
create table test(
  id int auto_increment primary key,
  name varchar not null default ''
)engine=Innodb charset=utf8;

1.1 存储引擎的分类

对不同的数据有不同的管理方式和存储方式,在mysql中称之为存储引擎

1). 文章,新闻等安全性要求不高的,选myisam
2). 订单,资金,账单,火车票等对安全性要求高的,选用innodb
3). 对于临时中转表,可以用memory型 ,速度最快

4). 中文全文索引:sphinx

Innodb:
  1. 默认版本包含5.5
  2. 支持事务
  3.不支持全文索引
  4. 索引和数据都是在同一个文件中, ( .ibd )
    表的结构是在( .frm )文件中
MyIsam
    1. 默认版本5.5以下
    2. 不支持事务
    3. 支持全文索引
    4. .frm:表结构
        .MYD:表数据
        .MYI: 表索引

 

2. 索引

2.1 作用:加快查询速度

2.2 类比:

新华字典的目录,可以将索引理解成一个特殊的文件。
如果没有这个文件的话,查询的是按照从前往后查找数据,
如果有这个文件的话,会按照一种特殊的数据结构(二叉树)查找数据

2.3 分类与创建和删除

1. 主键索引:加快查询 + 不能重复 + 不能为空  primary key

第一种:

create table t1(
   id int auto_increment primary key,
   name varchar(32) not null default ''
)engine=Innodb charset=utf8;


第二种

    alter table t1 change id id int auto_increment primary key;

 

2. 唯一索引:加快查询 + 不能重复  unique(列名)

      联合唯一索引: 加快查询 + 不能重复 unique (列名1,  列名2)

第一种:
create table t1(
   id int auto_increment primary key,
  name varchar(32) not null default '',
  age varchar(32) not null default '',
  unique ix_name (name,age)  )engine=Innodb charset=utf8;

第二种:
  create unique index 索引名称 on 表名(列名);
    create unique index ix_name on t1(name);

  
联合索引:
  create unique index 索引名称 on 表名(列名1,列名2);
   create unique index ix_name_age on t1(name,age); 

3. 普通索引:加快查询    index('列名')

第一种:
create table t1(
   id int auto_increment primary key,
   name varchar(32) not null default '',
  index ix_name ('name')
)engine=Innodb charset=utf8
 
 
第二种:
create index 索引名称 on 表名 (列名);
  create index ix_name on t1 (name);

4. 删除

drop 索引名称 on 表名;
  drop ix_name on t1;

2.4 使用场景与缺点

场景:使用频繁的列上加一个索引

缺点:

  版本5.3以下:
  删除和修改的速度就变慢了

  版本5.5以上:
  删除和修改的速度不是特别的慢

 

索引的使用

expain 工具

查看sql语句是否用得上索引,或者查看sql执行效率的工具

给执行的SQL语句出一个报告, 通过此报告来判断sql语句的执行效率和效果

 

SQL语句的规则:

- 不建议使用 like 进行搜索
- 组合索引最左前缀
如果组合索引为:(name,email)
where name and email -- 使用索引
where name -- 使用索引
where email -- 不使用索引

 

 3. 慢日志(slow log)

日志文件: 记录了执行速度特别慢的SQL语句

 

开启的步骤:
1. show variables like '%query%';
2. set global long_query_time = 1; 设置慢查询的时间
3. set global  slow_query_log = ON 
4. set global slow_query_log_file = E:\program\mysql-5.6.44-winx64\data\oldboy-slow.log

 

 

普通日志记录(general log):

SQL审计 (记录sql的操作语句)
show variables like '%general%';

 

 4. 权限管理

创建用户

create user '用户名'@'IP地址' identified by '密码';
create user 'zekai'@'192.168.1.123' identified by '123qwe';
create user 'zekai'@'192.168.1.%' identified by '123qwe';
create user 'zekai'@'%' identified by '123qwe';

删除用户

drop user '用户名'@'IP地址';

修改用户

rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

 

修改密码

set password for '用户名'@'IP地址' = Password('新密码')

授权:grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权

1. 给db1下的所有文件查看权限:

  grant select on db1.* to 'zekai'@'%';

2. 给所有数据库的查看权限:
  grant select on *.* to 'zekai'@'%';

3. 给db1下的所有文件查看,插入,删除权限:
  grant select, insert, delete on db1.* to 'zekai'@'%';

记住:
flush privileges;


推荐阅读
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
author-avatar
ciaos
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有