索引

SQL基础操作

筅森魡賤 提交于 2020-01-30 02:32:06
AND 与 or 的区别 AND :可以将 N 多的条件下使用 AND 运算符。采取动作的 SQL 语句,无论是事务或查询,所有分离的条件,必须为 True or :可以将 N 多的条件下使用 OR 运算符。 SQL 语句将要采取的动作,无论是一个事务或查询,任何一个 OR 必须为 TRUE 分离的条件 -- 通配符 _ 匹配单个 % 多字符匹配 -- 反义运算符 反义运算符( != !< !> )建立在同义运算符对面 (= < >) 不等于 <> 不大于 <= 不小于 >= -- 多值检测 要获取 23,25,28 岁员工信息 select * from tableA where age=23 or age=25 or age=28 或者 使用 in 关键字 select * from tableA where age in(23,25,28) in 在不间断的值时使用更好如果是连续的值可以使用范围查询条件 select * from tableA where age>23 and age <28 或者 使用 between and 获得范围这在 sql2008 后才有 select * from tableA where age between 23 and 28 -- 查询工资小于 5000 ,年龄在 25 到 28 之间的 select * from T_Employee

JQuery 学习笔记

我们两清 提交于 2020-01-30 02:28:20
1 简介 JQuery,是辅助JS开发的库。是一套跨浏览器的JS库,简化HTML与JavaScript之间的操作。极大地简化了遍历HTML文档,操作DOM,处理事件、执行动画和开发Ajax。链式操作,隐式迭代。 2 HelloWorld 1 使用JQuery必须先引入JQuery的库文件,使用script标签引入。 <script type="text/javascript" src="../script/jquery-1.7.2js"></script> <script type="text/javascript"> //编写js代码 //$():调用$方法 $():较直jquery的核心函数 /*为$()方法传入一个function{}作为参数 : window.οnlοad=function(){写代码} 就相当于$(function{写代码});*/ $(function()){ //使用$()查找元素,使用.click()来绑定点击响应函数,把单机响应函数作为click()的参数传入即可 $("#btnId").click(function(){ alert("HelloWorld"); }); }); </script> 2 $的本质:$是一个函数 ,把$();称为JQuery的核心函数。 $==jQuery,故jQuery("#btn").click(function

MongoDB 2.2索引

末鹿安然 提交于 2020-01-30 01:23:46
在mysql中已经学习了索引,并知道索引对于查询速度的提升 mongodb也支持索引,以提升查询速度 步骤一:创建大量数据 执行如下代码,向集合中插入10万条文档 for(i=0;i<100000;i++) { db.t1.insert({name:'test'+i, age:i}) } 步骤二:数据查找性能分析 查找姓名为'test10000'的文档 db.t1.find({name:'test10000'}) 使用explain()命令进行查询性能分析 db.t1.find({name:'test10000'}).explain('executionStats') 其中executionStats下的executionTimeMillis表示整体查询时间,单位是毫秒 性能分析结果如下图: 步骤三:建立索引 创建索引 1表示升序,-1表示降序 db.集合.ensureIndex({属性:1}) db.t1.ensureIndex({name:1}) 步骤四:对索引属性查询 执行上面的同样的查询,并进行查询性能分析 db.t1.find({name:'test10000'}).explain('executionStats') 性能分析结果如下图: 索引的命令 建立唯一索引,实现唯一约束的功能 db.t1.ensureIndex({'name':1}, {'unique':true

【Python学习笔记】2. 高级变量类型

走远了吗. 提交于 2020-01-30 00:16:45
1 列表(List) 1.1 基本信息 列表存储一串信息; 列表用 [ ] 定义,数据之间用“,”分隔; 列表的数据项不需要具有相同的类型; 列表索引号从0开始。 1.2 列表操作 list.append(self, object) :在末尾添加新object内容; list.clear(self) :清空列表 list.copy(self) :复制 list.count(self, obejct) :object在列表中出现的次数; list.extend(self, iterable) :其他列表中完整的内容追加到当前列表末尾; list.index(self, object, start, stop) :取索引 list.insert(self, index, object) :在指定索引位置插入 list.pop(self, index) :默认删除最后一个/删除指定索引元素 list.remove(self, object) :删除指定数据 list.reverse(self) :逆序,反转 list.sort(self, key, reverse) :升序排序 list.sort(reverse=Ture) :降序排序 1.3 del关键字 del 关键字(delete)删除列表元素 del name_list[1] # del 本质上将一个变量从内存中删除

【Python】Python之迭代

随声附和 提交于 2020-01-29 23:51:20
【Python】Python之迭代 学习完 Python 重要的基础数据类型(list,tuple…)之后,我们来了解一下 迭代 部分的相关知识。 迭代的含义 在 Python 中,如果给定一个 list 或者 tuple ,我们可以通过 for 循环来遍历这个list或tuple,这种遍历我们称之为迭代(Iteration)。 在 Python 中,迭代是通过 for … in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,例如 C语言 代码: for ( i = 0 ; i < list . length ; i ++ ) { n = list [ i ] ; } 可以看出,Python 的 for 循环抽象程度要高于 C 的 for 循环。 因为 Python 的 for 循环不仅可以用在 list 和 tuple 上,还可以作用在其他任何可迭代对象上。 因此,迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。 注意 : 集合是指包含一组元素的数据结构,我们已经介绍的包括以下几个 : 有序集合:list,tuple,string 和 Unicode 无序集合:set 无序集合并且具有 key-value 对:dict 而 迭代 是一个动词,它指的是一种操作 !在Python中,就是 for 循环。

Python编程入门-列表

江枫思渺然 提交于 2020-01-29 22:55:57
文章目录 列表 1.列表的定义 1.1访问列表元素 1.2索引 1.3 使用列表中的各个值 2.修改、添加和删除元素 2.1修改列表元素 2.2添加列表元素 2.3删除列表元素 3.组织列表 列表 1.列表的定义 列表由一系列按特定顺序排列的元素组成。 列表的数据项不需要具有相同的类型。 在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元 素。第一个索引是0,第二个索引是1,依此类推。 1.1访问列表元素 列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。 当你请求获取列表元素时,Python只返回该元素,而不包括方括号和引号: 1.2索引 在Python中,第一个列表元素的索引为0,而不是1。例如,要访问第一个列表元素,可使用索引0。 name = ['xiaozhang','xiaoli','xiaoou'] print(name[0]) xiaozhang Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1 ,可让Python返回最后一个列表元素: name = ['xiaozhang','xiaoli','xiaoou'] print(name[-1]) xiaoou 这种语法很有用

NoSQL数据库浅析

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-29 16:55:15
兴起原因 Not only SQL 传统的关系性数据库 关系代数理论基础 RDBMS只能纵向扩展:通过一台服务器增加性能终究难以满足数据量增长。 严格的数据库模式 索引机制,查询优化引擎:适当量级查询效率高 事务一致性:ACID 数据完整性:主键、约束 标准化:sql标准 技术支持:商业数据库 可维护:管理员维护 关系型数据库主从模式 面对日益增长的数据量,多台服务器的写主读从,分离单台服务器压力,但效果有限,且: 集群部署配置复杂 主库压力带来延迟 扩容重新分区复杂 web2.0的需求 关系型数据库事务机制需要额外的开销,但是在Web2.0通常不要求严格的数据库事务 不需要严格的读写实时性 不包含复杂的sql查询:连接操作牺牲性能节约空间 扩充关系型数据库无法实现的特点 1.灵活的可扩展性 2.灵活的数据模型 3.与云计算紧密结合:根据负载动态伸缩集群节点 NoSQL数据库优势 1.海量数据管理需求 2.高并发需求:动态数据实时生成性能需求 3.可扩展、高可用:突发事务访问量急剧增大 NoSQL数据库劣势 缺乏底层理论基础 事务强一致性:不适用关键业务 数据模型 不同场景下需要不同的数据模型 四大类型 键值数据库 如Redis存储键值对, 适合内容缓存 简单的数据模型 频繁读写 非结构化信息同时也有一些缺点,在一些场景下是不适合的:条件查询效率低、键与键之间没有办法反应联系关系

ElasticSearch 学习笔记一 简介

只愿长相守 提交于 2020-01-29 12:22:55
一、Lucene简介 A、Lucene的总体架构   1、文档(document):索引与搜索的主要数据载体,它包含一个或多个字段,存放将要写入索引或将从索引搜索出来的数据。   2、字段(field): 文档的一个片段,它包含两个部分: 字段的名称和内容。   3、词项(term):搜索的一个单位,代表文本中的某个词。   4、词条(token): 词项在字段中的一次出现,包括词项的文本、开始和结束的位置以及类型。 Apache Lucene将写入索引的所有信息组织成一种名为倒排索引(inverted index)的结构。 B、Lucene查询语言   1、AND: 操作符两边的词项都在文档中出现。   2、OR:任意词项在文档中出现。   3、NOT:文档必须不包含该操作符后面的词项。   4、+: 只有包含操作符后面词项的文档才会被认为是与从句匹配。   5、-: 从句匹配的文档不能出现操作符后面的词项。 Lucene中所有的数据都存储在字段(field)中,而字段又是文档的组成单位。为了实现针对某个字段的查询,用户需要提供字段名称,再加上冒号及条件。支持两种通配符: ?和*。?是匹配任意一个字符,*是匹配多个字符。~表示模糊查询。 二、ElasticSearch简介 A、基本概念   索引:ElasticSearch将它的数据存储在一个或多个索引(index)中

MySQL学习笔记(二)

坚强是说给别人听的谎言 提交于 2020-01-29 11:38:25
服务器性能剖析 1、性能指标 基准测试是针对系统设计的一种压力测试。 吞吐量: 单位时间内的事务处理数(TPS) 响应时间或延迟 并发性 可扩展性 SHOW STATUS 和SHOW PROCESSLIST 命令 tcpdump Schema与数据类型优化 数据类型选择 更小的通常更好,占用更少的磁盘、内存和CPU缓存。 简单就号,占用更少的CPU周期。如整型比字符操作代价更低。 尽量避免NULL。查询中包含NULL列,优化会更困难,索引、索引统计和值都会变的复杂。可为NULL的列会使用更多的存储空间。 如果计划在列中建索引,应尽量避免可谓NULL的列。 BLOB和TEXT区别在于BLOB存储的是二进制数据,没有排序规则和字符集,而TEXT类型有字符集和排序规。MySQL只对每个列的最前max_sort_length字节做排序。不能将列全部长度做索引,也不能使用这些索引消除排序。如果EXPLAIN执行计划中Extra列包含“Using temporary” 则说明这个查询使用了隐式临时表。 schema设计 不可有太多的列: 存储引擎API工作时需要在服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后再服务器层将缓冲内容解码成各个列。从行缓冲中将编码过的列转换成行数据结构的操作代价是非常高的。 不可进行太多的关联: 单个查询最好再12个表以内做关联。在设计的时候最好向单表查询靠拢

hbase二级索引

梦想的初衷 提交于 2020-01-29 06:23:25
二级索引与索引Join是多数业务系统要求存储引擎提供的基本特性,RDBMS早已支持,NOSQL阵营也在摸索着符合自身特点的最佳解决方案。 这篇文章会以HBase做为对象来讨论如何基于Hbase构建二级索引与实现索引join。文末同时会列出目前已知的包括0.19.3版secondary index, ITHbase, Facebook方案和官方Coprocessor的介绍。 理论目标 在HBase中实现二级索引与索引Join需要考虑三个目标: 1,高性能的范围检索。 2,数据的低冗余(存储所占的数据量)。 3,数据的一致性。 性能与数据冗余,一致性是相互制约的关系。 如果你实现了高性能地范围检索,必然需要靠冗余索引数据来提升性能,而数据冗余会导致更新数据时难以实现一致性,特别是分布式场景下。 如果你不要求高效地范围检索,那么可以不考虑产生冗余数据,一致性问题也可以间接避免,毕竟share nothing是公认的最简单有效的解决方案。 理论结合实际,下文会以实例的方式来阐述各个方案是如何选择偏重点。 这些方案是经过笔者资料查阅和同事的不断交流后得出的结论,如有错误,欢迎指正: 1,按索引建表 每一个索引建立一个表,然后依靠表的row key来实现范围检索。row key在HBase中是以B+ tree结构化有序存储的,所以scan起来会比较效率。 单表以row key存储索引