什么是搜索引擎?作用是什么?
搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。比如百度就是一款比较流行的搜索引擎。
扩展资料:
搜索引擎的使用步骤,以百度为例:
打开百度的首页:百度首页地址
在搜索框内输入需要知道或想要搜索的内容,点击“百度一下”,即可查询到相关搜索。
参考资料:
第一部份:索引服务器组;
第二部份:数据服务器组1;
。
。
。
。
第N部份:数据服务器组N;
第N+1部份:备份服务器组;
首先,解释一下第一部份服务器组,即索引服务器组;这一部分主要以内存数据组为主,所以数据也比较容易丢失,只要一断电什么的,就会丢失了数据,相信也会有后备电源,但还是最容易丢失的数据之一,但却是排名重要部份。特别是高指数的关键词的排名信息。所以一旦这一个服务器的数据丢失,网站的排名就会掉到100名以外
现象一:所有关键词,之前排名都是前三页的,突然掉到100名以后了,
现象二:网站快照是隔天的,
现象三:收录正常,基本是秒收的,
如果你的网站具备了以上三个现象,那么很幸运的恭喜你,中奖了,你所在的索引服务器出了问题。
解决办法:保持更新,该干嘛的还是干嘛,一个月后,大更新的时候,更新了索引服务器的时候,排名恢复!
第二部份,到第N部份,保存了网站的历史快照,比如说,第二部份是最新的,第N部份,是最老的,以此类推,那么,保存的数据组层越深,权重也会越高!当第二部份的服务器出问题的时候,会出现什么情况呢,那就是快照倒退,什么叫快照倒退呢?即本来快照是6月20日的,突然变成5月24日了,那么就是快照倒退!出现这种情况的具本现象如下:
现象一:所有的关键词排名基本无变化;
现象二:快照倒退大概一个月,或者15天。
现象三:收录停止,并减掉一部份;
如果你出现了以上三种情况的话,恭喜您,又中奖了!
解决方法:还是保持好步调,一般这样的故障,会在每一周的更新的时候,会恢复,快照会恢复,但收录得重新收录,没办法呀!只能这样呀!
本节课主要关注InnoDB,但是这里讨论的原理对于任何支持聚簇索引的存储引擎都是适用的。
叶子节点包含了全部数据,其他节点只包含索引列。InnoDB将通过主键聚集数据,也就是说上图中的“被索引的列”就是主键列。如果没有定义主键,InnoDB会选择一个唯一的非空索引代替。如果没有这样的索引InnoDB会隐式定义一个主键来作为聚簇索引。
如果主键比较大的话,那辅助索引将会变的更大,因为 辅助索引的叶子存储的是主键值;过长的主键值,会导致非叶子节点占用占用更多的物理空间
所以建议使用int的auto_increment作为主键
主键的值是顺序的,所以 InnoDB 把每一条记录都存储在上一条记录的后面。当达到页的最大值时,下一条记录就会写入新的页中。一旦数据按照这种顺序的方式加载,主键页就会近似于被顺序的记录填满。
聚簇索引的数据的物理存放顺序与索引顺序是一致的,即:只要索引是相邻的,那么对应的数据一定也是相邻地存放在磁盘上的。如果主键不是自增id,那么可以想 象,它会干些什么,不断地调整数据的物理地址、分页,当然也有其他一些措施来减少这些操作,但却无法彻底避免。但,如果是自增的,那就简单了,它只需要一 页一页地写,索引结构相对紧凑,磁盘碎片少,效率也高。
因为MyISAM的主索引并非聚簇索引,那么他的数据的物理地址必然是凌乱的,拿到这些物理地址,按照合适的算法进行I/O读取,于是开始不停的寻道不停的旋转。聚簇索引则只需一次I/O。(强烈的对比)
不过,如果涉及到大数据量的排序、全表扫描、count之类的操作的话,还是MyISAM占优势些,因为索引所占空间小,这些操作是需要在内存中完成的。
MyISM使用的是非聚簇索引, 非聚簇索引的两棵B+树看上去没什么不同 ,节点的结构完全一致只是存储的内容不同而已,主键索引B+树的节点存储了主键,辅助键索引B+树存储了辅助键。表数据存储在独立的地方,这两颗B+树的叶子节点都使用一个地址指向真正的表数据,对于表数据来说,这两个键没有任何差别。由于 索引树是独立的,通过辅助键检索无需访问主键的索引树 。
所以说,聚簇索引性能最好而且具有唯一性,所以非常珍贵,必须慎重设置。 一般要根据这个表最常用的SQL查询方式来进行选择,某个字段作为聚簇索引,或组合聚簇索引 ,这个要看实际情况。
聚簇索引和非聚簇索引的数据分布有区别,主键索引和二级索引的数据分布也有区别,通常会让人感到困扰和以外,下面通过一个列子来讲解InnoDB和MyISAM是如何存储数据的:
该表的主键取值1~10000,按照随机顺序插入并使用optimize table命令做了优化。换句话说,数据在磁盘上的存储方式已是最优,但行的顺序是随机的。列col2的值是从1~100之间随机赋值,所以有很多重复的值。
MyISAM的数据分布很简单,所以先介绍它。MyISAM按照数据插入的顺序存储在磁盘上,如下图所示:
在行的旁边显示行号,从0开始递增。因为行是定长的,所以MyISAM可以从表的开头跳过所需的字节找到需要的行。
col2上的索引
事实上,MyISAM中主键索引和其他索引在结构上没有什么不同。主键索引就是一个名为PRIMARY的唯一非空索引。
InnoDB支持聚簇索引,所以使用不同的方式存储同样的数据。
第一眼看上去,感觉和前面的没什么区别,但是该图显示了整个表,而不是只有索引。因为在InnoDB中,聚簇索引就是表,所以不像MyISAM那样需要独立的行存储,这也是为什么MyISAM索引和数据结构是分开的。
聚簇索引的每一个叶子节点都包含了主键值。事务ID、用于事务和MVCC的回滚指针以及所有的剩余列。如果主键是一个列前缀索引,InnoDB也会包含完整的主键列和剩下的其他列。
还有一点和MyISAM不同的是,InnoDB的二级索引和聚簇索引很不相同。InnoDB的二级索引的叶子节点中存储的不是“行指针”,而是主键值,并以此作为指向行的“指针”。这样的策略减少了当出现行移动或者数据页分裂时二级索引的维护工作。使用主键值当作指针会让二级索引占用更多的空间,换来的好处是,InnoDB在移动时无需更新二级索引中的这个“指针”。
我们在来看一下 col2索引 。
每一个叶子节点包含了索引列(这里是col2),紧接着是主键值(col1),上图我们省略了非叶子节点这样的细节。InnoDB非叶子节点包含了索引列和一个指向下一级节点的指针。
最后,以一张图表示InnoDB和MyISAM保存数据和索引的区别。
前面讲过,最好使用AUTO_INCREMENT自增列来聚集数据,避免随机的、不连续的、值分布范围大的列做聚簇索引,特别是对于I/O密集型的应用。例如,从性能角度考虑,使用UUID来作为聚簇索引则会很糟糕:他使得聚簇索引的插入变得完全随机,这是最坏的情况,使得数据没有任何聚集特性。
为了演示这一点,我们做两个基准测试:
1、使用证书ID插入userinfo表,和uuid作为主键的userinfo_uuid表
userinfo_uuid表跟userinfo表除了主键给为UUID,其他字段都一样
测试这两个表的设计,首先在一个有足够内存容纳索引的服务器上向这两个表各插入100万条记录。然后向两个表继续插入300万数据,使索引的大小超过服务器的内存容量。测试结果如下:
向UUID主键插入行不仅花费的时间更长,而且索引占用的空间也更大。这一方面是由于主键字段更长,另一方面毫无疑问是由于页分裂和碎片导致的。
为了明白为什么会这样,来看看往第一个表中插入数据时,索引发生了什么变化。
自整型主键插入
因为主键是顺序的,所以InnoDB把每一条记录都存在上一条记录的后面。当达到页的最大容量后,下一条记录就会写入到新的页中。一旦数据按照这种顺序的方式加载,主键页就会近似于被顺序的记录填满,这也正是所期望的结果。
UUID插入
因为新行的主键值不一定比之前插入的大,所以InnoDB无法简单的总是把新行插入到索引的最后,而是需要为新的行寻找合适的位置,通常是已有数据的中间位置,并且分配空间。这会正价很多的额外工作,并导致数据分布不够优化。
缺点:
把这些随机值载入到聚簇索引后,也许需要做一次OPTIMIZE TABLE来重建表并优化页的填充。
结论 :使用InnoDB时应尽可能地按主键顺序插入数据,并且尽可能地单调增加聚簇键的值来插入新行。
如何安装和配置索引服务
默认情况下,基于 Windows Server 2008 的计算机上未安装索引服务。要在基于 Windows Server 2008 的计算机上安装索引服务,您必须首先使用服务器管理器来向服务器中添加文件服务角色。然后,您必须添加在 Windows Server 2003 文件服务角色可用的索引服务角色服务。若要执行此操作,请按照下列步骤操作:
单击开始,指向所有程序,都指向管理工具,然后单击服务器管理器。
在服务器管理器的控制台树中,右键单击角色,,然后单击添加角色。
在添加角色向导中,单击下一步。
在选择服务器角色页上单击以选中文件服务复选框,然后单击下一步。
在文件服务页上,单击下一步。
在选择角色服务页上,单击以选中Windows Server 2003 文件服务下的索引服务复选框,然后单击下一步。
在确认安装选择页上,单击安装。
按照添加角色向导中的说明操作以完成安装。
安装索引服务后,您必须为索引服务创建新的 Microsoft 管理控制台 (mmc) 管理单元。若要执行此操作,请按照下列步骤操作:
单击开始,单击运行,键入mmc,然后按 enter 键。
在文件菜单上,单击添加/删除管理单元。
在可用的管理单元列表中,单击索引服务,然后单击添加。
在连接到计算机对话框中,单击本地计算机: (运行此控制台的计算机),然后单击完成。
若要关闭添加或删除管理单元对话框中,单击确定。控制台显示索引服务管理单元中。
点对点技术(peer-to-peer,简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过AdHoc连接来连接节点。这类网络可以用于多种用途,各种档案分享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。
纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。
有些网络(如Napster,OpenNAP,或IRC@find)的一些功能(比如搜索)使用客户端-服务器结构,而使用P2P结构来实现另外一些功能。类似Gnutella或Freenet的网络则使用纯P2P结构来实现全部的任务。
历史
P2P架构体现了一个互连网技术的关键概念,这一概念被描述在1969年4月7日第一份RFC文档“RFC1,主机软件”中。而最近,在不用中心索引服务器结构实现多媒体文件交换的背景下,这个概念已经变的非常普遍了。
0条评论