索引

JavaScript<3>--数组

别说谁变了你拦得住时间么 提交于 2020-02-19 04:34:36
数组 JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。 要取得Array的长度,直接访问 length 属性: var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 6 请注意,直接给Array的length赋一个新的值会导致Array大小的变化: var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr变为[1, 2, 3, undefined, undefined, undefined] arr.length = 2; arr; // arr变为[1, 2] Array可以通过索引把对应的元素修改为新的值,因此,对Array的索引进行赋值会直接修改这个Array: var arr = ['A', 'B', 'C']; arr[1] = 99; arr; // arr现在变为['A', 99, 'C'] 请注意,如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化: var arr = [1, 2, 3]; arr[5] = 'x'; arr; // arr变为[1, 2, 3, undefined, undefined, 'x'] 大多数其他编程语言不允许直接改变数组的大小,越界访问索引会报错

matlab中{}和()的区别

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-19 02:47:14
这几天在写Matlab时,对元胞数组使用了 {} 和 () 运算符,过程总是出现各种问题,简单记录一下。 先来看一下官方解释:您可以使用圆括号 () 对元胞数组进行索引,使用花括号 {} 对元胞的内容进行索引。 换句话说使用 () 得到的结果时元胞集,使用 {} 的到的时元胞中存的数据。 宏观理解元胞数组就是可以包含不同类型数据的数据类型,微观理解是元胞数组是由一个个元胞组成的数组,其中每个元胞只能包含相同类型的数据(数组或者元胞数组)。 而 () 只能索引到元胞集,不能获取到元胞里存储的数据;{} 能获取到元胞里存储的数据。 举个简答的例子: A = cell(2,2); B = {'A' 'B';'C' 'D'}; 首先声明一个 2 * 2 的空元胞数组A,再声明一个 2 * 2 的元胞数组其有初始值,我们现在要将 B 的第一行数据赋值给 A(1, 1)。 假如写成下面这个样子, A(1, 1) = B(1,:); 看一下结果: 看来是错误的,分析一下:A(1, 1)索引的是元胞集,可只其结果应该为一个元胞,而 B 本身为元胞数组,B 的第一行是两个元胞,使用两个元胞给一个元胞赋值当然会报错,看错误类型猜测就是数组维度问题。 那加入写成下面的这个样子呢? A{1, 1} = B{1,:}; 运行起来似乎没有任何错误 查看一下结果: 为什么其结果只有一个 A 呢? 分析一下:B

SQLServer 存储过程调优小结

你说的曾经没有我的故事 提交于 2020-02-19 01:55:42
公司服务器崩了,很多测试环境用不了,弄了一个生产库还原到本地,调了下统计分析系统的一些存储过程: 场景:首页一进去就加载七个报表,而且是实时计算的。。。不光耗资源,还会锁住ajax,串行一个个执行这七个存储过程,导致其它的ajax执行不了(表现在点击其它子菜单无响应,要等前面ajax用完了才会轮到后面) 1、固化数据、缓存什么的,先不考虑,还是按原样先动态实时取首页吧,接手过来的项目先不急着翻新,先看能否花半天一天优化。 2、按前几天学的在控制器上设置Session的ReadOnly,刷新首页发现死锁。。。而且是每次必死锁 3、检查存储过程,发现里面都有两句UPDATE全库的一个字段,如果是NULL则取另一个值。这个没必要每次查询都去全库更新,会锁表,也不可能存在这么多异常数据,这种数据修正的,放在每晚同步时处理就好了,去掉后不再死锁。 4、并行后,速度反正不如原先串行的。。。串行的每个执行只要1~3秒(虽然也不短),但整体下来还好,一个个等它轮圈,二十秒左右也全部加载完了。但并行后,每个都要花掉10~20秒左右。。。翻了好几倍 5、复制出来执行,一个个又恢复到1~3秒,怀疑是并发引起,又不好重现并发场景,就把SQL窗口缩小,屏幕上并排摆了7个,一个个快速切换到窗口用快捷键执行,这样也重现出了速度慢的情况。 6、观察存储过程,有两张大表(几十万),没加索引。加完索引后,效果不明显。

mysql优化随笔一

我与影子孤独终老i 提交于 2020-02-19 00:43:41
优化的两个关键点在于:索引和sql语句 索引: 索引就是数据结构,通过索引可以快速查询到你想要的内容,即是排好序的快速查找数据 索引劣势:索引本身也很大,能提高查询数据速度,相对也会降低更新表的速度,所以如果是频繁更新的字段,不建议建立索引 sql语句: having 和where对比:where对聚合前的数据进行过滤,having对聚合后的数据进行过滤 最左匹配原则:和联合索引有关,因为索引只能用于查找key是否存在(相等),遇到范围查询等就不能进一步匹配,后续将退化为线性查找,所以列的排列顺序决定了可命中索引的列数, 来源: CSDN 作者: 个人存在 链接: https://blog.csdn.net/qq_38240938/article/details/104382616

数据库的概念

坚强是说给别人听的谎言 提交于 2020-02-18 05:55:43
1、触发器的作用? 答:触发器是一种特殊的存储过程,它主要是通过事件来触发而被执行的。它的作用是可以强化约束,维护数据的完整性和一致性,也可以可以跟踪数据库内的操作从而不允许未经许可的更新和变化。也可以联级运算。如某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2、什么是存储过程?如何来调用存储过程? 答:存储过程是一个预编译的SQL语句,他的优点是允许模块化的设计,也就是说只需创建一次,在该程序中就可以调用多次。例如某次操作需要执行多次SQL,就可以把这个SQL做一个存储过程,因为存储过程是预编译的,所以使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3、什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 4、什么是事务? 答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。事务有四个特性,分别是:原子性,一致性,隔离性和持久性。 5

python3列表

。_饼干妹妹 提交于 2020-02-18 05:35:54
列表由一系列按特定顺序排列的元素组成。 用方括号[ ]表示列表,用逗号分隔其中的元素。 1、访问列表元素 (1)要访问列表元素,可指出列表的名称,再指出元素的索引。 例如print(cars[0]) (2)索引列表从0开始,而不是从1开始,即0对应列表的第一个元素,1对应列表的第二个元素; 2、修改列表元素 要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。 car[0]=123 3、在列表中添加元素 (1)在列表末尾添加元素,append(),用法:列表名.append(需要添加的元素) (2)在列表中插入元素,insert(),用法:列表名.insert(新元素的索引,新元素) (3)从列表中删除元素,使用del语句。用法:del 列表名[元素索引] (4)使用方法pop()删除元素。pop()就是从列表中弹出一个元素,并可将这个元素存储到一个变量,以便于使用。 例:popped_motorcycle=motorcycles.pop()。pop()默认弹出最后一个元素。若需要弹出其他位置的元素,需要指定元素索引,比如pop(1); (5)根据值删除元素,使用方法remove()。用法:列表名.remove(元素值) 4、使用方法sort()对列表进行 永久性排序。用法:列表名.sort()。sort按照字母顺序排列。 5、使用函数sorted(

Java基础学生管理系统

穿精又带淫゛_ 提交于 2020-02-18 05:12:14
集 合 编程的时候如果要存储多个数据,使用固定长度数组不一定满足需求。 集合特点:提供一种存储空间可变的存储模型,存储的数据容量可变。 集合只能存储引用类型数据。 ArrayList<E>: 可调整大小的数组实现 <E>:是一种特殊的数据类型、泛型。 怎么用呢? 在E地方用引用数据类型替换即可 如:ArrayList<String>,ArrayList<Student> ArrayList构造方法和添加方法 方法名 说明 Public ArrayList() 创建一个空的集合对象 Public boolean add(E e) 将指定元素添加到集合末尾 Public void add(int index,E element) 在集合指定位置插入指定元素 import java.util.ArrayList; /** * @author murongkang * @date 2019-08-18 23:27 */ /*Public ArrayList() 创建一个空的集合对象 Public boolean add(E e) 将指定元素添加到集合末尾 Public void add(int index,E element) 在集合指定位置插入指定元素*/ public class ArrayListDemo { public static void main(String[]

MongoDB操作基础(索引)

霸气de小男生 提交于 2020-02-17 20:00:55
本节主要讲解下MongoDB的索引使用 **查询find()补充:**条件操作符语法:$type:[key] 可选的 key 值如下: 1: 双精度型(Double) 2: 字符串(String) 3: 对象(Object) 4: 数组(Array) 5: 二进制数据(Binary data) 7: 对象 ID(Object id) 8: 布尔类型(Boolean) 9: 日期(Date) 10: 空(Null) 11: 正则表达式(Regular Expression) 13: JS 代码(Javascript) 14: 符号(Symbol) 15: 有作用域的 JS 代码(JavaScript with scope) 16: 32 位整型数(32-bit integer) 17: 时间戳(Timestamp) 18: 64 位整型数(64-bit integer) -1: 最小值(Min key) 127: 最大值(Max key) > db.zhongrun.find ( { "name" : { $type :2 } } ) 和下边的写法一致: > db.zhongrun.find ( { "name" : { $type : 'string' } } ) limit 和skip用法: 读取指定数量的数据记录 limit()。 范例: > db.zhongrun.find

小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame

↘锁芯ラ 提交于 2020-02-17 15:18:04
在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):Pandas (二)数据结构 Series 引言 DataFrame 是由多种类型的列构成的二维标签数据结构。 简单理解是类似于 Excel 、 SQL 表的结构。 DataFrame 是最常用的 Pandas 对象,与 Series 一样,DataFrame 支持多种类型的输入数据: 一维 ndarray、列表、字典、Series 字典 二维 numpy.ndarray 结构多维数组或记录多维数组 Series DataFrame 构建 DataFrame 同 Excel 一样, DataFrame 拥有行标签( index )和列标签( columns ),可以理解为 Excel 的行和列。 在构建 DataFrame 的时候,可以有选择的传递 index 和 columns 参数。 这样可以确保生成的 DataFrame 里包含索引或列。 注意: Python > = 3.6,且 Pandas > = 0.23,数据是字典,且未指定 columns 参数时,DataFrame 的列按字典的插入顺序排序。 Python < 3

mongodb 基本原理:索引(Indexes)

≯℡__Kan透↙ 提交于 2020-02-17 06:15:47
mongodb 使用索引支持高效的查询,没有索引就必须要扫描整个数据集。 索引是以一种可高效遍历数据的形式(B树)存储的结构,存放着一个或多个字段值,并且按值排序。索引的这种排序支持高效的精确查询或者范围查询,根据索引的排序返回排好序的数据。 以下是使用索引查询病排序的图示: 默认的 _id 索引 mongodb 在 _id 字段上创建唯一索引,这个索引不能删除。 注意:在分片集群中,若_id 不作为shardkey,则必须在应用中保证其唯一性。通常可以用自动生成的 ObjectId 索引的创建 db.collection.createIndex() db.collection.createIndex( { name: -1 } ) 在name字段上创建一个单key 降序索引 索引名称 默认的索引名称是排序的key的拼接,外加每个key后拼接其排序方式(升序、降序对应1、-1) 如 :{ item : 1, quantity: -1 } 的索引名称是: item_1_quantity_-1 自定义索引名称可以使用: db.products.createIndex( { item: 1, quantity: -1 } , { name: "query for inventory" } ) 可以用 db.collection.getIndexes() 查看索引.