- 浏览: 507207 次
- 性别:
- 来自: 大连->北京
最新评论
-
春天好:
写的很不错 推荐一个免费好用的云端爬虫开发平台不需要安装环境, ...
web爬虫 -
cpu88:
网络爬虫爬来爬去,网上信息可以瞬间扩散,但是也意味着,没有人愿 ...
web爬虫 -
biaoming:
牛。。学习了。。
MongoDB 关于索引的建议 -
biaoming:
楼主用mongo好早啊。
MongoDB 优化 -
biaoming:
好教程,学习了。。。
MongoDB 优化
文章列表
转载http://www.douban.com/group/topic/7248985/
1.我这人从不记仇,一般有仇当场我就报了。 2.别在我的坟前哭。脏了我轮回的路。 3.已经将整个青春都用来检讨青春,还要把整个生命都用来怀疑生 命。 4.是这样的张总,妳在家里的 ...
- 2009-07-15 10:05
- 浏览 866
- 评论(0)
有的时候你可能需要索引字符数非常多的列。这会让你的索引非常大并且很慢。一个策略就是模拟hash索引。前一部分已经说过了。但是有的时候这种方法也不是很好。将要怎么做。
一般可以用索引前一部分的一些字符的方法 ...
- 2009-07-13 22:32
- 浏览 1807
- 评论(0)
如果你在一个查询中不隔离已经索引的列,一般来说MySQL就不会使用这个列上的索引,除非在查询中隔离这个列。“隔离”列的意思就是,这个列不能使一个表达式的一部分或者被放在一个函数的内部。
举个例子,在这个查询中,你不能使用在actor_id上的索引。
mysql> SELECT actor_id FROM sakila.actor WHERE actor_id + 1 = 5;
我们很简单的就能知道上面的actor_id+1=5和actor_id=4是相同的,但是MySQL却不能处理这个actor_id+1=5这个方程式。这取决于你所做的。你应该简化你的WHERE条件。因此 ...
- 2009-07-12 14:27
- 浏览 1642
- 评论(0)
创建正确的索引和正确的使用它们,是获得好的查询性能的关键所在。我们已经介绍了不同种类的索引并且探究了它们的优缺点。现在让我们来看看怎样深入的使用强大的索引。
有许多高效的选择和使用索引的方法,因为有很多特殊情况的优化以及一些专门的行为。决定什么时候使用并且评估你的选择对性能所造成的潜在影响,这些也是我们将会学的技能。接下来的部门会教你怎样高效的使用索引,但是千万不要忘了进行基准测试。
- 2009-07-12 14:05
- 浏览 905
- 评论(0)
全文索引
FULLTEXT是MyISAM表的一个特殊的索引类型。它在文本中找到一个关键词,而并不是在索引中直接比较着两个值。Full-text搜索不同于其他类型的匹配。它有许多细微的差别。比如stopwords,stemming,plurals以及Boolean searching。
这些基本都和搜索引擎相关了。
给一个列加全文索引并不能消除B-Tree索引的值。全文索引是匹配而不是WHERE条件的操作。
我们会在全文搜索中,详细讨论。
- 2009-07-09 13:58
- 浏览 1099
- 评论(0)
空间(R-TREE)索引
MyISAM支持空间索引。你可以把它和地图类型一起使用。比如GEOMETRY。不像B-Tree索引,它并不要WHERE条件来操作左边前缀的索引。它通过所有的维度来索引数据。因此,查找可以有效地使用任意维度的组合。然而你必须要使用MySQL GIS函数。比如MBRCONTAINS( )。
- 2009-07-09 13:43
- 浏览 1316
- 评论(0)
Hash索引
Hash索引是建立在Hash table至上的,并且它只对准确查找有效,也就是说,必须查找索引上的每一个列。对于每个行,存储引擎计算了索引列的Hash code。这个hash code是非常小,并且对于其他行不同的数值,这些Hash code也是不相同的。在索引中存储了hash code并且在hash table中存储了一个指针指向每一行。
在MySQL中,只有Memory存储引擎支持显式的Hash索引。虽然Memory表也可以使用B-Tree索引,但是它们是默认的索引类型是Hash索引。Memory引擎支持非唯一的Hash索引,这在数据库领域中是不寻常的。如果多个值有相 ...
索引的类型
索引有许多类型,它们都是针对不同的用途而被设计的。索引是在存储引擎中实现的,而不是服务器。因此它们并没有标准化:在每个引擎中,索引工作的方式都有所不同,并且并不是所有的存储引擎支持所有种类的索引。即使这些存储引擎支持索引的类型相同,在底层的实现也是有所不同。
让我们来看看MySQL所支持的索引类型,它们的优势和缺点。
B-Tree索引
当人们讨论索引而没有说明它的类型的时候,往往指的是B-Tree索引。它用B-Tree数据结构存储了数据。大部分MySQL存储引擎都支持这种类型。Archive引擎是个例外:MySQL5.1之前还不支持索引,现在可以支持对AUTO_I ...
索引是数据结构。它能帮助MySQL更有效率的获取数据。它对于好的性能是决定性的因素,但是人们常常忘记使用它们或者没有正确的理解它们,因此在现实的例子中,索引总是引起性能问题。这就是我们把索引放在这本书的较早部分的原因。甚至把索引这章放在语句优化之前。
索引(在MySQL中也叫做键(keys))在数据越来越大的时候,变的格外重要。数据量小,没有高的负载的情况下,在没有索引的情况下,数据库也可以表现的很好,但是随着数据量的增大,性能下降还是非常厉害的。
最简单的理解MySQL索引的工作方式就是思考下这本书的索引。你可以通过此书的索引,很容易找到你需要的内容。并且可以知道内容的页码。
...
- 2009-07-05 15:25
- 浏览 1151
- 评论(0)
特殊类型的数据
一些特殊类型的数据可能并不直接的和MySQL内置类型相吻合。一个例子就是用STAMPTIME存储更精确的时间。
另一个例子是IP地址。人们常常使用VARCHAR(15)来存储IP地址。然而,一个IP地址其实是一个无符号的32bit的整型,并不是一个字符串。IP地址的点儿仅仅是为了方便人们去读取IP地址而已。你应该用无符号整型去存储IP地址。MySQL提供了INET_ATON()和INET_NTOA()函数来解决这两种类型的转换。以后的MySQL版本。它会提供一个专门来存储IP的地址的数据类型。
- 2009-07-05 14:53
- 浏览 1135
- 评论(0)
对于主键,选择一个好的数据类型尤为关键。你可能经常需要用这些列和其他做比较以及用这些列查找其他的列。你可能也把它们作为另一些表的外键。因此当你选择主键的数据类型时,应该保持相关表主键类型一致。
当选 ...
- 2009-07-02 16:37
- 浏览 1751
- 评论(0)
MySQL有很多使用单独的bit去存储数据的类型。不管底层的存储格式以及操作,从技术上来看所有的这些类型都是字符串类型。
BIT
在5.0之前的版本,BIT仅仅等同于TINYINT。但是在5.0之后的版本,它已经是个具有一些特性的,和 ...
日期和时间类型
MySQL对于不同种类的日期和时间有很多的数据类型,比如YEAR和DATE。MySQL可保存时间颗粒度是一秒。然而,时间的计算可以精确到毫秒。我们将会教你如何解决存储引擎的局限性。
大部分时间类型都没有什 ...
- 2009-06-27 18:37
- 浏览 1253
- 评论(0)
字符串类型
MySQL支持很多字符串类型,以及它们的许多变化类型。这些数据类型在4.1和5.0版本变化都比较大。可以说变得更复杂了。早在4.1版本中,每个字符串列都有自己的字符集和对于那些字符集的排序规则,或者叫做colla ...
整数
总共有两种数字类型:整数和实数(有小数部分的)。如果你保存的是整数,使用下列的整型:TINYINT,SMALLINT,MEDIUMINT,INT或者BIGINT。它们分别需要8,16,24,32,以及64位的存储空间。它们存储的值范围为N就是它们使用的存储空间所需的位数。
整型有个一个可选择的参数,就是UNSIGNED,它不允许存储负数,而正数的最大上限变为之前的大约两倍左右。举个例子,一个TINYINT UNSIGNED存储的范围是0-255,而不是之前的-128-127.
有符号和无符号类型使用了相同大小的存储空间,它们的性能是一样的,因此使用哪种类型取决存储的数 ...
- 2009-06-26 10:08
- 浏览 1781
- 评论(0)