# 索引
# 认识mysql中的key
# index key 普通索引,能够加速查询,辅助索引
# unique key 唯一 + 索引,辅助索引
# primary key 唯一 + 非空 + 聚集索引
# 主键作为条件的查询如果能够让索引生效那么效率总是更高
# foreign key 本身没有索引的,但是它关联的外表中的字段是unique索引
# primary key 和unique 标识的字段不需要再添加索引
# 直接就可以利用索引加速查询
# 能用unique的时候尽量不用index
# unique除了是索引之外还能做唯一约束,如果做了唯一约束
# b+树就更健康
# 正确的使用索引
# 创建索引 creeat index 索引名 on 表名(字段名)
# 删除索引 drop index 索引名 on 表名 # 1.条件一定是建立了索引的字段,如果条件使用的字段根本就没有创建索引,那么索引不生效
# 2.如果条件是一个范围,随着范围的值逐渐增大,那么索引能发挥的作用也越小
# 3.如果使用like进行模糊查询,那么使用a%的形式能命中索引,%a形式不能命中索引
# 4.尽量选择区分度高的字段作为索引列
# 5.索引列不能在条件中参与计算,也不能使用函数
# 6.在多个条件以and相连的时候,会优点选择区分度高的索引列来进行查询
# 在多个条件以or相连的时候,就是从左到右依次判断
# 7.制作联合索引
# 1.最左前缀原则 a,b,c,d 条件是a的能命中索引,条件是a,b能命中索引,a,b,c能命中,a,c.... 只要没有a就不能命中索引
# 如果在联合查询中,总是涉及到同一个字段,那么就在建立联合索引的时候将这个字段放在最左侧
# 2.联合索引 如果按照定义顺序,从左到右遇到的第一个在条件中以范围为条件的字段,索引失效
# 尽量将带着范围查询的字段,定义在联合索引的最后面
# drop index
# 如果我们查询的条件总是多个列合在一起查,那么就建立联合索引
# create index ind_mix on s1(id,email) # select * from s1 where id = 1000000 命中索引
# select * from s1 where email = 'eva1000000@oldboy' 未命中索引
# 但凡是创建了联合索引,那么在查询的时候,再创建顺序中从左到右的第一列必须出现在条件中
# select count(*) from s1 where id = 1000000 and email = 'eva10%'; 命中索引 # select count(*) from s1 where id = 1000000 and email like 'eva10%'; 可以命中索引
# 范围 :
# select * from s1 where id >3000 and email = 'eva300000@oldboy'; 不能命中索引
# 8.条件中涉及的字段的值必须和定义表中字段的数据类型一致,否则不能命中索引 # 关于索引的两个名词
# 覆盖索引 查一个数据不需要回表
# select name from 表 where age = 20 不是覆盖索引
# select age from 表 where age =20 是覆盖索引
# select count(age) from 表 where age =20 是覆盖索引
# 合并索引
# 当我们为单独的一列创建索引的时候
# 如果条件是这一列,且使用正确就可以命中索引
# 当我们为两列分别创建单独的索引的时候
# 如果这两列都是条件,那么可能只能命中期中一个条件
# 如果这两列都是条件,那么可能会命中两个索引 - 合并索引
# 我们为多列直接创建联合所以
# 条件命中联合索引 # 执行计划
# 看看mysql准备怎么执行这条语句 可以看到是否命中索引,计划能命中哪些,实际命中了哪些,执行的顺序,是否发生了索引合并,覆盖索引
# explain select * from s1; # 数据库部分的拾遗
# pymysql
# 数据库备份和还原
# 使用事务和锁的方式来保证数据安全

python学习第41天的更多相关文章

  1. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  2. python学习之“切片操作从入门到精通”

    在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? >>> L ...

  3. Python:Python学习总结

    Python:Python学习总结 背景 PHP的$和->让人输入的手疼(PHP确实非常简洁和强大,适合WEB编程),Ruby的#.@.@@也好不到哪里(OO人员最该学习的一门语言). Pyth ...

  4. python学习博客地址集合。。。

    python学习博客地址集合...   老师讲课博客目录 http://www.bootcdn.cn/bootstrap/  bootstrap cdn在线地址 http://www.cnblogs. ...

  5. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  6. python学习之argparse模块

    python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...

  7. Python学习-终端字体高亮显示1

    Python学习-终端字体高亮显示   1.采用原生转义字符序列,对Windows有的版本不支持(比如win7),完美支持Linux 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显 ...

  8. Python 学习参考书目推荐

    Python 学习,参考书目推荐 前言 好的技术书籍可以帮助我们快速地成长,大部分人或多或少地受益于经典的技术书籍.在「Python开发者」微信公号后台,我们经常能收到让帮忙推荐书籍的消息.这类的问题 ...

  9. Python学习 —— 阶段综合练习三

    Python学习 —— 阶段综合练习三 综合之前文件与文件夹操作的学习,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. 目录文件遍历(二层目录结构) 1).  ...

随机推荐

  1. row_number()over()使用

    语法: ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause ) 通过语法可以看出 o ...

  2. 01-maya基础

    maya基础 1,ctrl shift m 切换面板工具栏. 2,空格键+ 右键 :快速的切换视图. 3,在一视图上单击空格键,可放大显示. 4, 工程的创建 1,创建工程:文件--项目窗口,建完后, ...

  3. 外部程序调用Django模块的解决办法

    Question django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not ...

  4. Struts2的初级应用

    做一个登录注册 1.把Struts2框架的必须包导入到项目中(http://struts.apache.org/) 2.web.xml <?xml version="1.0" ...

  5. 搭建VirtualBox虚拟机集群

    ===============================VirtualBox常用网络===============================NetworkAddress Translati ...

  6. 九、uboot 代码流程分析---relloc_code

    执行完 board_init_f 后,重新跳转回 _main 中执行. 9.1 relloc_code 前 9.1.1 gd 设置 在调用board_init_f()完成板卡与全局结构体变量 gd 的 ...

  7. luogu P3767 膜法

    传送门 这题如果没有删除操作,可以直接使用可持久化并查集 注意到这种可持久化的依赖关系(是这样说的把)是一棵树,然后对于一个点,自己的操作会影响自己的那棵子树,并且如果是删除操作,就会使得一个子树没有 ...

  8. ubuntu14.04 Samba服务无法访问 网络名不再可用的问题

    参考链接 : https://blog.csdn.net/liuyixjtu/article/details/54575514

  9. Django REST framework 简介

    需求 REST framework需要如下: Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6) Django (1.10, 1.11, 2.0) 下面的文件包可以选择性安装 ...

  10. Spring Data

    官网地址 http://projects.spring.io/spring-data 包含子项目 简介 Spring Data 是 Spring 的一个子项目.用于简化数据库访问,支持NoSQL,关系 ...