终极:03 搜索引擎的分类

优采云 发布时间: 2022-10-30 06:10

  终极:03 搜索引擎的分类

  一、索引​​ 1.1、索引的定义及优缺点

  索引的定义:索引是对数据库表中一个或多个列的值进行排序的结构。使用索引,您可以快速访问数据表中的特定信息。

  通俗地说,索引是数据库表的目录。通过索引,我们可以快速找到数据库中的数据,并进行相应的增删改查等操作。

  索引的使用大大加快了数据检索的速度,将随机I/O变成了顺序I/O(因为B+树的叶子节点是连在一起的),并且加快了表之间的连接,让我们查询数据更加方便. 方便,所以我们在进行数据库查询的时候,基本离不开索引,但同时它也有一定的不足。从空间的角度来说,索引的建立需要占用物理空间,会占用计算机的内存,所以我们对数据库进行优化。创建索引时,会尽量减少索引的建立;从时间上看,创建和维护索引需要时间。例如,在添加、删除和修改数据时需要维护索引。因此,在创建索引时,我们应该注意不要创建太多索引。.

  1.2 索引的数据结构

  索引的数据结构主要包括B+树和哈希表,对应的索引分别是B+树索引和哈希索引。InnoDB 引擎的索引类型包括 B+ 树索引和哈希索引。默认索引类型为 B+ 树索引。一般来说,我们在查询的时候多使用B+数,因为它的搜索效率很高,而且支持排序和范围搜索;哈希索引通常用于精确的等效搜索。

  MySQL的主要索引类型有FULLTEXT、HASH、BTREE、RTREE。

  FULLTEXT:FULLTEXT 是全文索引。MyISAM 存储引擎和 InnoDB 存储引擎在 MySQL 5.6.4 及以上版本支持全文索引。一般用于在文本中查找关键字,而不是直接比较是否相等,多在CHAR、VARCHAR、TAXT等数据类型上建立全文索引。全文索引主要用于解决WHERE name LIKE "%zhang%"等文本模糊查询效率低的问题。

  HASH:HASH 是哈希索引。哈希索引主要用于等价查询。时间复杂度为O(1),效率很高,但不支持排序、范围查询、模糊查询。

  BTREE:BTREE是B+树索引,INnoDB存储引擎的默认索引,支持排序、分组、范围查询、模糊查询等,性能稳定。

  RTREE:RTREE是空间数据索引,主要用于地理数据的存储。与其他索引相比,空间数据索引的优势在于范围搜索

  1.1.3。指标分类

  1、唯一索引:是表上的一个或多个字段组合建立的索引。这个或这些字段的值的组合不能在表中重复。

  2、非唯一索引:是表上的一个或多个字段组合建立的索引。这个或这些字段的值的组合在表中可以重复,不需要唯一。

  3、主键索引(primary index):它是一种特定类型的唯一索引。在表中创建主键时会自动创建索引。一张表只能建立一个主索引。

  4、聚集索引(clustered index,Innodb):表中记录的物理顺序与键值的索引顺序相同。因为真实数据只有一个物理顺序,所以一张表只能有一个聚集索引。叶节点(B+树)存放的是实际的数据行,没有其他单独的数据页。

  5、非聚集索引(Mylsam):表中记录的物理顺序与键值的索引顺序不同。这也是非聚集索引和聚集索引的根本区别。叶节点不是数据节点,而是每个指向真实数据行的指针。

  聚集索引和非聚集索引的主要区别在于数据和索引是否分开存储。

  2 数据库引擎 2.1 数据库引擎的定义和理解

  数据库引擎只是一个“数据库引擎”。访问数据库时,无论是手动访问还是程序访问,都不是直接读写数据库文件,而是通过数据库引擎访问数据库文件。以关系数据库为例,你向数据库引擎发送 SQL 语句,数据库引擎对 SQL 语句进行解释,提取你需要的数据并返回给你。因此,对于访问者来说,数据库引擎就是 SQL 语句的解释器。官方称,数据库引擎是用于存储、处理和保护数据的核心服务。数据库引擎可以快速控制访问权限和处理事务,以满足企业中大多数需要处理大量数据的应用程序的需求。这包括创建用于存储数据的表和用于查看、管理和保护数据的数据库对象。(例如索引、视图和存储过程)

  见博客:(176条)数据库引擎学习总结_gentelyang的博客-CSDN博客_数据库引擎

  2.2. 数据库引擎的任务

  1:设计并创建一个数据库来保存系统所需的关系或xml文档

  2:实现系统来访问或更改存储在数据库中的数据,实现网站或使用数据的应用程序,包括使用SOL Server工具和使用工具已经使用的数据的过程。

  3:为单位或用户部署实施的系统

  

  4:提供日常管理支持,优化数据库性能。

  2.3、发动机的类别

  常见的数据库引擎类别包括ISAM、MYISAM、HEAP和INNODB,它们是mysql数据库的组成部分,在数据查询中起着非常重要的作用。其详情如下:

  是

  ISAM 是一种定义明确且经过时间考验的数据表管理方法,其设计目的是查询数据库的频率远高于更新数据库的频率。因此,ISAM 执行读取操作的速度非常快,并且不会消耗大量内存和存储资源。ISAM 的两个主要缺点是它不支持事务,并且它不是容错的:如果您的硬盘驱动器崩溃,则无法恢复数据文件。如果您在关键任务应用程序中使用 ISAM,您必须经常备份所有实时数据,通过其复制功能,MySQL 可以支持这样的备份应用程序。

  MyISAM

  MyISAM 是 MySQL 的 ISAM 扩展格式和默认数据库引擎。除了提供 ISAM 中没有的广泛的索引和字段管理功能外,MyISAM 还使用表锁定机制来优化多个并发读写操作。代价是您需要经常运行 OPTIMIZETABLE 命令来恢复更新机制浪费的空间。MyISAM 还有一些有用的扩展,例如修复数据库文件的 MyISAMChk 工具和恢复浪费空间的 MyISAMPack 工具。

  堆

  HEAP 允许仅驻留在内存中的临时表。在内存中使 HEAP 比 ISAM 和 MyISAM 更快,但它管理的数据是易失的,如果在关机前没有保存,所有数据都会丢失。删除行时,HEAP 也不会浪费大量空间。当您需要使用 SELECT 表达式来选择和操作数据时,HEAP 表很有用。请记住在使用完表单后将其删除。让我再重复一遍:不要忘记在使用完表单后将其删除。

  InnoDB 和 BerkleyDB

  InnoDB 和 BerkleyDB (BDB) 数据库引擎都是支持 MySQL 灵活性的技术 MySQL++ API 的直接产品。您在使用 MySQL 时面临的几乎所有挑战都源于 ISAM 和 MyISAM 数据库引擎不支持事务或外键这一事实。尽管比 ISAM 和 MyISAM 引擎慢得多,但 InnoDB 和 BDB 包括对事务处理和外键的支持,而前两个引擎都没有。如前所述,如果您的设计需要这些功能中的一项或两项,您将不得不使用后两种引擎中的一种。

  2.4. InnoDB引擎和MyISAM引擎的区别

  在 InnoDB 存储引擎中,默认索引是 B+ 树索引。使用主键创建的索引是主索引,也是聚集索引,在主索引上创建的索引是二级索引,也是非聚集索引。为什么要在主索引之上创建二级索引,因为二级索引中的叶子节点存储的是主键。

  在MyISAM存储引擎中,默认索引也是B+树索引,但是主索引和二级索引都是非聚集索引,也就是说索引结构的叶子节点存储了一个指向数据行的地址。并使用二级索引来检索不需要访问主键的索引。

  3 数据库事务 3.1、事务的四个特征

  原子性:事务是执行的最小单位,要么全部要么没有

  一致性:事务执行前后数据一致,多个事务读取的结果相同

  隔离:并发访问数据时,一个用户事务不会被其他事务干扰

  持久化:事务完成后,该事务对数据库所做的更改被持久化在数据库中,不会回滚。

  3.2 事务的隔离级别

  事务有四种隔离级别,包括未提交读、已提交读、可重复读和可序列化。从低到高分别是未提交读、已提交读、可重复读和可序列化。这四个级别可以一一解决脏问题。阅读、不可重复阅读和幻读。

  Read uncommitted Read uncommitted:事务B已经读取了事务A尚未提交的数据,可能会发生脏读

  读已提交:事务A提前读取数据,事务B立即更新数据,并提交事务,而当事务A再次读取数据时,数据已经改变,避免脏读,但可能是不可重复读

  可重复读 可重复读:,避免不可重复读,但仍有可能出现幻读。注意:MySQL 的默认隔离级别是可重复读。

  

  Serializable 序列化:Serializable 是最高的事务隔离级别,但成本最高,性能低。一般很少使用。在这个级别,事务是顺序执行的,既可以避免脏读和不可重复读,又可以避免幻读。

  1.3.3. 重复阅读和幻读

  重复读取是为了保证在一个事务中,相同查询条件下读取的数据值不变,但不能保证在下一次相同条件下查询结果记录数不会增加。

  幻读的存在就是为了解决这个问题。他锁定了查询范围,因此您不能再将数据插入此范围。这就是 SERIALIZABLE 隔离级别的作用。

  4.索引、引擎和事务的关系 4.1 三者的关系

  通俗的讲,索引是数据库查询,是写入数据的目录,引擎可以说是数据库与外界交互的工具,事务是决定各系统之间业务交付的最小单位。数据库和外部世界。通过数据库索引、引擎和事务的知识,我们可以更好的理解和掌握数据库是如何使用的。也可以借此了解和掌握mysql和mysqls数据库相关的事务,也可以了解更多关于如何优化sql语句和优化数据库表的知识。

  4.2. mysql中的数据库索引和引擎

  MySQL的主要索引类型有FULLTEXT、HASH、BTREE、RTREE。它们是全文索引、哈希索引、B+树索引和空间数据索引。它们共同构成了数据库的INnoDB、MYISAM、HEAP等基础存储引擎和搜索引擎,也使数据库具备了很*敏*感*词*,可以支持排序和分组。、范围查询、模糊查询等操作,让数据发挥其生产力。

  它与外界交互的sql语句形成一个事务,将数据的操作变成一个完整的事件,从而通过组合体现我们世界的变化,从而帮助我们生活的方方面面,发挥它的作用。独特的功能。比如通过mysql中表数据的不同查询条件,我们可以得到并过滤掉不同人的分数,从而

  4.3 其他数据库的设计与思考 4.3.1 Oracle数据库引擎

  oracle中没有引擎的概念,数据处理大致可以分为两类:OLTP(在线事务处理)和OLAP(在线分析处理)。OLTP 是传统关系型数据库的主要应用,主要用于基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,注重决策支持,提供直观易懂的查询结果。

  OLTP 和 OLAP 的区别

  OLTP系统强调数据库内存效率,强调各种内存指标的指挥率,强调绑定变量,强调并发操作;

  OLAP系统强调数据分析、强调SQL执行市场、强调磁盘I/O、强调分区等。

  见博客:

  4.3.2 Sqlite 数据库设计

  sqlite数据库设计零配置生效,兼容。

  4.3.3 redis数据库

  4.3.4 MongoDB

  4.3.5 hBase 数据库

  5.数据库优化策略

  1.索引优化

  2.分库分表

  3. 其他

  参考:

  解读:简、繁、火星文、英汉等转换工具免费,让你的网站快速收录排名

  简繁转换工具,为什么要使用简繁转换工具?有很多繁体字显示的网站。他们的文章原创作品都是用简体字写的。今天给大家分享一个简体繁体火星英文中文转换工具。还支持:自动采集+自动转换+伪原创+自动发布+主动推送到搜索引擎收录。接下来,我们将以图片的形式为大家展示。请注意图片1、2、3和4

  不要忘记 SEO 的基本细节。SEO优化常识有很多基础细节,同样值得关注。它通常是网站快速增长的基石。有时候我们经常向SEO新手重复这些问题,这就是所谓的SEO,知道了就知道了,这代表了一定的SEO基本素质。

  在 网站 构建过程中,我们试图让 网站 架构对搜索引擎友好,但实际上,在实践中,我们应该同时满足以下两个方面:

  1、百度蜘蛛偏好:网站结构简单,网站类别清晰,有利于其准确定位网站的相关性和垂直度。

  

  2. 用户阅读体验:需要符合潜在精准用户阅读习惯和页面相关应用流畅度的用户界面设计。

  对于新的网站,尤其是企业级垂直电商网站,数据信息量大,SKU数量多,需要重点关注URL标准化和标准标签的合理使用. 防止过多的重复内容,从而限制 网站 爬取的频率,从而允许内部权重被非理性且有效地分配。

  关于网站图片,根据SEO优化的常识,我们知道它可以有效减少竞争,获取相关流量,提高页面点击率,比如:

  1、基于图片搜索引擎的优化,可能需要使用ALT标签,合理使用图片名称,注意不同平台的图片大小,图片的清晰度。

  2.结构化数据,将搜索结果展示在地图上,在提高页面点击率的同时具有重要的参考意义,尤其是移动端展示的三张图片,效果非常明显。

  

  3.防止镜像链,有效防止站外调用镜像,可有效节省站内资源,提高站内运行速度。

  关于百度索引工具,一定要好好应用。百度索引其实很有用。百度索引可以查看我们关键词的搜索量。

  当然,这个搜索量是估计的,并不是很精确的估计搜索量。它的索引代表他估计的搜索量。对于多个关键词,我们可以用中英文逗号分隔,完成数据查询,比较结果。重点是什么?百度索引功能。比如选择了两个相似的长尾词,两个词的意思也差不多,但是不知道用哪个比较好。这时候我们可以打开百度索引,我们把两个词放在上面。, 然后用中英文逗号隔开。分开,然后点击查询,查询会有这两个词的对比结果,你就知道了。

  我们可以清楚地看到哪个搜索量比你的高,这样我们就可以停止选择。这是如何使用的?然后还有一个百度索引,就是用加号连接多个关键词,可以完成数据的加法查询结果。这两个,这两个关键词的总搜索量,百度指数是多少?在这种情况下,这两种搜索技术在 SEO 工作中起到了很大的作用,例如,比较我们自己和我们的竞争对手对手的品牌存在差距。

  应用程序工具停止查询。当然,这是比较先进的。这两种方法都是比较高级的应用。与低级应用相比,我们直接写一个词来停止查询。这个词的搜索量是多少?这三种是百度指数的应用方式。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线