我有一张记录少于50,000条记录的表格,可跟踪各种货物的运输情况。
为每批货物分配一个跟踪编号。
然后,每批货都会经过一系列的工作流程'当它到达某一点时。单个货件可以通过多达10个工作流程。某些工作流程可能会被取消,具体取决于具体情况,但每批货物都将具有开始工作流程和结束工作流程。
该表设置为跟踪每个货件在不同工作流程中的移动情况,从而保存工作流程的历史记录。话虽如此,该表将在每个工作流程中保存相同货件的10多条记录。
它们可能看起来像重复,但它们不是因为工作流和日期戳会有所不同。
现在,当用户搜索来自特定区域的特定货件组时,查询需要很长时间才能恢复记录。当我说“这么长时间”时,我的意思是它可能需要超过30秒到一分钟。
主键设置为跟踪编号,发货人姓名,交货地点,但不包括工作流程。
我知道这不太合适,但除了顶部之外,我该如何为这样的表编制索引?
我试图添加一个表格视图,但我无法弄清楚如何在这里显示它。
答案 0 :(得分:0)
您可以在列u用于搜索的位置设置索引。
实施例
ALTER TABLE TABLE_NAME ADD INDEX(COLUMN_NAME);
有关mysql索引的更多文档 http://www.tutorialspoint.com/mysql/mysql-indexes.htm
答案 1 :(得分:0)
需要注意的一点是,您已经拥有主键的索引 - 请参阅Is the primary key automatically indexed in MySQL?
为搜索的列创建索引可能会更快。需要注意的一点是,您无法为所述数据提供唯一索引。