Mysql 在不断更新数据库中维护排序顺序
假设数据库表中的每一行都包含有关搜索词的信息。该表有一个整数列,用于指定搜索词在网站上的显示顺序 我如何最好地实施和维护这个排名顺序 我想避免的问题是,术语编号为1,2,3,4,…,100,例如,当排名50突然变得有趣时,它将其新排名设置为1,然后它们之间的所有术语的排序数必须增加1 当然,将初始排序数设置为100、200、300、400等会留下一些移动空间,但在某个时候它会中断 另一种方法是用固定的偏移量隔开列组,但在现实场景中,它也可能在某个时间中断 那么,有没有其他不同的方法来处理这个问题。。。。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等会留下一些移动空间,但在某个时候它会中断 另一种方法是用固定的偏移量隔开列组,但在现实场景中,它也可能在某个时间中断 那么,有没有其他不同的方法来处理这个问题
这可能与搜索引擎如何维持排名和重新排序有关,但我找不到任何运气这个想法怎么样。我喜欢排队 创建额外的表Taskid、新的_列等。。。。 在插入时为主表创建触发器 在主表中插入新行时,请执行以下操作: 不允许在man表中插入新行; 在任务表中插入新行。 例如,每小时运行一次存储过程,其中: 在光标中选择任务表中的所有新行; 循环中: 2.1。在主表中运行增加准备秩可以插入新行秩值 2.2。在man表中插入新行 2.3。从任务中删除行
也许您需要在事务中执行2.1-2.3项 不能将其视为重复,这个问题是关于大型数据库中频繁更新的行的相对独立的列。此排名字段中的所有数据都是完全独立的,可以作为系统wantin案例搜索算法使用。**没有其他列在结果的索引/排名中扮演任何角色**@Jitendra您是否已经解决了此问题?如果数据为多GB,则可能无法正常工作。我不知道为什么,但有个傻瓜把我的问题修改成了完全不同的答案。。我讨厌关于Stackoverflow的非事先的事情,这让我很恼火,因为有人不知道我的问题,他会改变我的问题,然后走开@你可以在这里看到谁编辑了你的消息。您也可以联系这里的支持。谢谢。。。谢谢你的回答。我最初的问题是在搜索引擎排名的背景下,若排名变化是通过递归更新处理的,那个么数百万条记录将被改变。。。