MySQL 索引创建二

五、选择索引列

在性能优化过程中,选择在哪些列上创建索引是最重要的步骤之一。可以考虑使用索引的主要有两种类型的列:在WHERE子句中出现的列,在join子句中出现的列。请看下面这个查询:

SELECT age ## 不使用索引
FROM people WHERE firstname=’Mike’ ## 考虑使用索引
AND lastname=’Sullivan’ ## 考虑使用索引

这个查询与前面的查询略有不同,但仍属于简单查询。由于age是在SELECT部分被引用,MySQL不会用它来限制列选择操作。因此,对于这个查询来说,创建age列的索引没有什么必要。下面是一个更复杂的例子:

SE[……]

继续阅读

MySQL 索引创建一

一、什么是索引?

索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。

假设我们创建了一个名为people的表:

CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NUL[……]

继续阅读

js 之 NaN 值与 isNaN() 函数

NaN “Not a Number”。出现这个数值比较少见,以至于我们可以不理它。当运算无法返回正确的数值时,就会返回“NaN”值。NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。

isNaN()
计算一个参数,检查它是否为数值。

核心函数
实现版本     Navigator 2.0: 仅在 Unix上
Navigator 3.0, LiveWire 1.0: 所有平台

语法
isNaN(testValue)

参数
testValue     你想要测试的值。

描述
isNaN() 是一个内建的 JavaScript 函数。它并[……]

继续阅读

t2t 转 chm 脚本

txt2tags是一种很简洁的标记语言,t2t文件可以直接转换成html、sgml、LaTex等常用的结构性文本。

一般阅读一下TXT2TAGS 示例和它对应的源码就可以很快的用t2t来组织你的文档,让你更多的关注你的内容。

txt2tags将会为你生成一个单个的html或者其他格式的文件,这样会有两个问题

  1. 不方便阅读,当内容很多的时候,你需要上下滚动找到你想要的内容,当然也可以用搜索来找到你想要的内容,但是总归不方便浏览。
  2. 当有图片文件引用的时候还是不是太方便
chm格式的文件则可以避免上面的两个问题,但是目前没有txt2tags直接转成chm的功能。不过好在t2t生成好的h[……]

继续阅读

SQL ORDER BY 子句

ORDER BY 语句

ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

原始的表 (用在例子中的):

Orders 表:

Company
OrderNumber

IBM
3532

W3School
2356

Apple
4698

W3School
6953

实例 1

以字母顺序显示公司名称:

SELECT Company, OrderNumber FROM Orders ORDER BY Company

结果:

Company
O[……]

继续阅读

Mysql 支持的索引类型

B-Tree 索引

当人们谈及索引而没有说明其类型的时候,多半是指 B-Tree 索引,它通常使用 B-Tree 数据结构来保存数据。B-Tree 索引的每一个叶子节点都包含了指向下一个节点的联接,以实现快速的范围遍历。

哈希索引

哈希索引(Hash Index)建立在哈希表的基础上,它只对使用了索引中的每一列的精确查找有用。对于每一行,存储引擎计算出了被索引列的哈希码(Hash Code),它是一个较小的值,并且有可能和其他行的哈希码不同。它把哈希码保存在索引中,并且保存了一个指向哈希表中每一行的指针。

空间(R-Tree)索引

MyISAM 支持空间索引,它可以使用诸如 GEOM[……]

继续阅读

Mysql 中 IP 地址的存储

人们通常使用 varchar(15) 列来保存 IP 地址。但是,IP 地址实际是无符号的32位整数,而不是字符串。使用小数点来进行分隔纯粹是为了增加它的可读性。实际应该使用无符号整数来保存 IP 地址。Mysql 提供了 INET_ATON() 和 INET_NTOA() 函数在IP地址和整数之间相互转换。未来的 Mysql 也许还会提供原生的 IP 地址数据类型。[……]

继续阅读

svn 错误集锦

问题1:’.’ is not a working copy. Can’t open file ‘.svnentries’:系统找不到指定的路径。

解答:原因是输入的访问路径不正确,如svn://192.168.6.200/如果最后少写了“/”,就会出现这种错误提示。

问题2:将文件checkout之后,没有出现SVN的图标,是怎么回事?

解答:有些时候在客户端Checkout文件后,SVN的系统图标也会不显示,可以执行一下“Clean up”,就会出现SVN的系统图标。

问题3:为什么添加的文件,别人看不到,版本库里也没有?

解答:最可能的原因是,你只是执行了“Add”而没有“Com[……]

继续阅读

浅谈window.attachEvent

以前写 JavaScript 脚本时,事件都是采用object.event = handler;的方式初始化。这种方式对于 Internet Explorer、Mozilla/Firefox 和 Opera 来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。

但是 Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是问题是 Mozilla/Firefox 并不支持这个[……]

继续阅读

PHP autoload 机制

一、简介

PHP5中引入了类的自动装载(autoload)机制。autoload机制可以使得PHP程序有可能在使用类时才自动包含类文件,而不是一开始就将所有的类文件include进来,这种机制也称为lazy loading。

例子:

/* autoload.php */
<?php
function __autoload($classname) {
require_once ($classname . “class.php”);
}
$person = new Person(”Altair”, 6);
var_dump ($person);

通常PHP5在使用一个类时,如果发现这个类[……]

继续阅读