MySQL INDEX当前数据库表

时间:2015-09-03 15:21:41

标签: mysql database indexing

我有一张记录少于50,000条记录的表格,可跟踪各种货物的运输情况。

为每批货物分配一个跟踪编号。

然后,每批货都会经过一系列的工作流程'当它到达某一点时。单个货件可以通过多达10个工作流程。某些工作流程可能会被取消,具体取决于具体情况,但每批货物都将具有开始工作流程和结束工作流程。

该表设置为跟踪每个货件在不同工作流程中的移动情况,从而保存工作流程的历史记录。话虽如此,该表将在每个工作流程中保存相同货件的10多条记录。

它们可能看起来像重复,但它们不是因为工作流和日期戳会有所不同。

现在,当用户搜索来自特定区域的特定货件组时,查询需要很长时间才能恢复记录。当我说“这么长时间”时,我的意思是它可能需要超过30秒到一分钟。

主键设置为跟踪编号,发货人姓名,交货地点,但不包括工作流程。

我知道这不太合适,但除了顶部之外,我该如何为这样的表编制索引?

我试图添加一个表格视图,但我无法弄清楚如何在这里显示它。

2 个答案:

答案 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?

为搜索的列创建索引可能会更快。需要注意的一点是,您无法为所述数据提供唯一索引。