程序是如何在短时间内从庞大的数据库中找到某用户ID信息的呢?
发布网友
发布时间:2022-04-09 11:58
我来回答
共3个回答
热心网友
时间:2022-04-09 13:27
网站的用户数据是存放在数据库中的,怎么快速查询是所有数据库最基础的问题。
数据库提高查询效率的方法其实很简单,不是遍历所有数据,而是使用高效的数据结构来存储数据,比如树结构、网结构等。查询的时候,按照数据结构的搜索算法来查找,不需要遍历所有数据。现在的数据库大多采用B树结构以及B树结构的变体(B+树、B*树等),你要是感兴趣,可以在网上查找这些数据结构的相关解释说明。这里就不细说了,因为展开解释的话,要打很多字...
举个通俗的例子吧,比如把一本英语字典中的单词存到数据库中,按照树形结构来存(这里用比较简单的二叉树)。你要查询email这个单词,并不是从a字母开头的单词一个一个查,而是从数据库的中间查起,假设中间的单词是orange,然后比较email和orange的大小,发现email应该排在orange的前面,然后再读取orange前面所有单词的中间一个,假设是go,比较email和go的大小,发现email也应该排在go的前面,再取go前面所有单词的中间一个,假设是day,比较email和day的大小,发现email应该在day之后,这时需要取day和go之间所有单词的中间一个,继续比较,以此类推,直到email所在的位置被找到。
这是一个典型的简单二叉分支查询法,一般人查字典也是类似这么做的。数据库的查询要比这个复杂,需要兼顾查询速度和存储空间的利用。还是那句话,有兴趣的话,可以在网上搜索,就不打字啦
热心网友
时间:2022-04-09 14:45
软件开发环境的开发商会编写一些数据库分析数据的工具或者接口、或者类方法组,程序就是用代码去找到这些接口或者工具,然后编译成机器认识的语言,计算机通过开发商固定好的逻辑去查找数据
热心网友
时间:2022-04-09 16:20
最基本的就是把表中的记录一条条读出来,然后看看是符合条件,这叫全表扫描
如果能利用分区,那就只扫描那些符合分区条件的分区
如果能利用索引,那就只先扫描索引,找到符合条件的记录,然后再去读记录的数据