# 索引
# 认识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. JS常用类

    JS常用类 一.Number 1.常用数字 整数:10 小数:3.14 科学计数法:1e5 | 1e-5 正负无穷:Infinity | -Infinity 2.常用进制 二进制:0b1010 八进制 ...

  2. 在浏览器窗口中加载新的url

    通常,在前端页面中如果需要跳转到指定页面,可以通过<a>标签进行跳转.而在某些情况下,比如ajax调用之后想直接跳转到指定页面,想跳转页面不能再用<a>标签实现.此时,可以通过 ...

  3. SQL Server进阶(十一)可编程对象——变量、 批、流元素、 游标

    变量 --------------------------------------------------------------------- -- Variables -------------- ...

  4. DevExpress Winform 常用控件

    Ø  前言 DevExpress 控件的功能比较强大,是全球知名控件开发公司,对于开发 B/S 或 C/S 都非常出色,可以实现很炫且功能强大的效果. DevExpress Winform 常用控件是 ...

  5. 【python小练】0017-将xls文件内容写入xml文件中

    第 0017 题: 将 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中,如 下所示: <?xml version="1.0" ...

  6. Emmet 记录

    Refs 熟悉 css 有优势,emmet 的的缩写语法特别像 css 选择器. =>参考本博笔记 # id > 直接子元素 child . class + Sibling 同级相邻的一个 ...

  7. Spark的四种部署方式并对应四种提交方式

    1 Local模式     本地模式  local模式 一台机器即可,开箱即用 不指定master,或者 --master  local  local[N]  local[*] local模式下,使用 ...

  8. git操作远程仓库

    1.在本地电脑的上生成ssh-key ssh-keygen -t rsa -C "youremail@126.com" 可以在用户主目录里找到.ssh目录,里面有id_rsa和id ...

  9. Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客

    ==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...

  10. jQuery源码分析学习--资料收集--更新中

    1.逐行分析jQuery源码的奥秘 - 网易云课堂  http://study.163.com/course/courseMain.htm?courseId=465001#/courseDetail? ...