索引:是针对数据所建立的目录.
作用: 可以加快查询速度
负面影响: 降低了增删改的速度.
索引的创建原则:
1:不要过度索引
2:在where条件最频繁的列上加.在重复度高的列上不加,比如性别男女;
3:尽量索引散列值,过于集中的值加索引意义不大.
索引的类型
普通索引: index 仅仅是加快查询速度.
唯一索引: unique index 行上的值不能重复
主键...
分类:
数据库 时间:
2014-11-09 12:41:53
阅读次数:
212
MySql 内存表使用内存表使用哈希散列索引把数据保存在内存中,因此具有极快的速度,适合缓存中小型数据库,但是使用上受到一些限制,以下是蓝草使用的一些感受。1、heap对所有用户的连接是可见的,这使得它非常适合做缓存。2、仅适合使用的场合。heap不允许使用xxxTEXT和xxxBLOB数据类型;只...
分类:
数据库 时间:
2014-11-09 00:50:11
阅读次数:
251
1、分库分表很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到members...
分类:
数据库 时间:
2014-11-08 23:29:09
阅读次数:
372
散列表 又叫 哈希表(hash table)。通过访问key而直接访问存储的value值。它的key - value之间存在一个映射函数,我们可以通过key值和“看不到”的映射函数(散列函数)访问对应的value值。这加快了查找的速度!存放记录的数组称做散列表。散列方法不同于顺序查找、二分查找、二叉...
分类:
其他好文 时间:
2014-11-07 00:47:48
阅读次数:
306
LinkedHashMap继承自HashMap,相关基本操作性能略低于HashMap,由于需要额外代价维护链表。其遍历操作是通过操作该双向链表实现,而非内部散列表数组,因此性能为O(size)比HashMapO(capacity)更高。
支持两种顺序遍历:元素插入顺序(重复put不算)和最近使用优先顺序(调用put和get类似LRU),默认是按照元素插入顺序遍历。通过构造函数传入true可以实现最近使用优先遍历,每次put或get操作时,将该元素直接重新放置到链表头结点后面来实现最近使用优先遍历。
Link...
分类:
其他好文 时间:
2014-11-06 20:06:39
阅读次数:
205
11.1直接寻址表当关键字的全域U很小,可采用直接寻址的方式。假设动态集合S的元素都取自全域U={0, 1, ..., m-1}的一个关键字,并且没有两个元素具有相同的关键字。为表示动态集合,使用直接寻址表(diret-address table),记为T[0...m-1],其中的每个位置称为槽(s...
分类:
编程语言 时间:
2014-11-06 19:23:27
阅读次数:
358
HashMap本身是一个有数组和链表组成的数据结构,其插入和查找元素的消耗可以看成O(1)。默认散列表内部数组大小保证为2的幂次,由于内部采用了位运算代替了传统取模运算来确定元素插入位置。
HashMap性能由散列表的容量和装填因子两部分决定,其中装填因子默认是0.75,容量默认是16。
Map是独立接口,并非Collection子接口,但是提供三个集合类视图:键集合、值集合、键值对集合。分别对应keySet()、values()、entrySet()三个方法的返回值,这三个集合视图是无状态的,本身依赖Ma...
分类:
其他好文 时间:
2014-11-05 19:47:50
阅读次数:
359
摘要: 本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和冲突处理方法,可以使得在散列表中查找一个元素的期望时间为O(1)。散列表是普通数组概念的推广,在散....
分类:
其他好文 时间:
2014-11-04 18:49:33
阅读次数:
223
HashMap HashMap是基于哈希表的Map接口的非同步实现。允许使用null值和null键。数据结构 HashMap是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。/** ...
分类:
其他好文 时间:
2014-11-04 00:09:37
阅读次数:
361