mySQL新手提出的问题。我正在尝试建立一个表,其中包含有关机器零件(螺钉,托架,汽缸等)的信息,并且每个零件都对应于该零件所属的机器。数据库将经过设计,以便每当客户端从表中读取时,都将选择来自一台指定计算机的所有零件。我试图找出最快的方法,可以从磁盘读取属于某个类别的所有行。
排序表不是一种选择,因为很多人可能会一次向表中添加行。为每台计算机使用表也不可行,因为可能会创建新计算机。我希望它必须处理许多INSERT和SELECT操作,但几乎没有DELETE操作。我已经提出了一个计划,以快速识别属于任何机器的每个零件,并且我开始问它是否可行:
包含机器零件数据的每一行将包含同一机器的上一个零件和下一个零件的行号。一个单独的表将包含该表上显示的每台计算机最后一部分的行号。脚本可以跟随这些“指针”的列表,跳到表的不同部分,直到找到所有部分。
TL; DR
这种用行号搜索行的方法是否比用整数主键搜索要快(因为主键不一定表示表上的位置)?会快多少?与使用索引相比,它会带来明显的性能改进吗?