Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在不断更新数据库中维护排序顺序_Mysql_Database_Database Design_Search Engine_Code Search Engine - Fatal编程技术网

Mysql 在不断更新数据库中维护排序顺序

Mysql 在不断更新数据库中维护排序顺序,mysql,database,database-design,search-engine,code-search-engine,Mysql,Database,Database Design,Search Engine,Code Search Engine,假设数据库表中的每一行都包含有关搜索词的信息。该表有一个整数列,用于指定搜索词在网站上的显示顺序 我如何最好地实施和维护这个排名顺序 我想避免的问题是,术语编号为1,2,3,4,…,100,例如,当排名50突然变得有趣时,它将其新排名设置为1,然后它们之间的所有术语的排序数必须增加1 当然,将初始排序数设置为100、200、300、400等会留下一些移动空间,但在某个时候它会中断 另一种方法是用固定的偏移量隔开列组,但在现实场景中,它也可能在某个时间中断 那么,有没有其他不同的方法来处理这个问题

假设数据库表中的每一行都包含有关搜索词的信息。该表有一个整数列,用于指定搜索词在网站上的显示顺序

我如何最好地实施和维护这个排名顺序

我想避免的问题是,术语编号为1,2,3,4,…,100,例如,当排名50突然变得有趣时,它将其新排名设置为1,然后它们之间的所有术语的排序数必须增加1

当然,将初始排序数设置为100、200、300、400等会留下一些移动空间,但在某个时候它会中断

另一种方法是用固定的偏移量隔开列组,但在现实场景中,它也可能在某个时间中断

那么,有没有其他不同的方法来处理这个问题。。。。
这可能与搜索引擎如何维持排名和重新排序有关,但我找不到任何运气

这个想法怎么样。我喜欢排队

创建额外的表Taskid、新的_列等。。。。 在插入时为主表创建触发器

在主表中插入新行时,请执行以下操作:

不允许在man表中插入新行; 在任务表中插入新行。 例如,每小时运行一次存储过程,其中:

在光标中选择任务表中的所有新行; 循环中:

2.1。在主表中运行增加准备秩可以插入新行秩值

2.2。在man表中插入新行

2.3。从任务中删除行


也许您需要在事务中执行2.1-2.3项

不能将其视为重复,这个问题是关于大型数据库中频繁更新的行的相对独立的列。此排名字段中的所有数据都是完全独立的,可以作为系统wantin案例搜索算法使用。**没有其他列在结果的索引/排名中扮演任何角色**@Jitendra您是否已经解决了此问题?如果数据为多GB,则可能无法正常工作。我不知道为什么,但有个傻瓜把我的问题修改成了完全不同的答案。。我讨厌关于Stackoverflow的非事先的事情,这让我很恼火,因为有人不知道我的问题,他会改变我的问题,然后走开@你可以在这里看到谁编辑了你的消息。您也可以联系这里的支持。谢谢。。。谢谢你的回答。我最初的问题是在搜索引擎排名的背景下,若排名变化是通过递归更新处理的,那个么数百万条记录将被改变。。。