嗨,我有一个 MySQL 表,假设它是一个帮助台票务系统。它有一个 CLOSED 列,我想为其建立索引。 99% 的时间,我只需要选择 OPEN 门票,所以类似
"SELECT * FROM TICKET_TABLE where CLOSED='N'; "
随着时间的推移,越来越多的工单被关闭,而仍然有少量固定数量的开放工单。 OPEN/CLOSED 比率约为 1/99。
我有一个索引
ALTER TABLE TICKET_TABLE ADD INDEX ( CLOSED );
但是这个索引没有被选择(我有很多其他索引,当我执行 EXPLAIN 时会选择它们)。当我查询时我可以理解这个 CLOSED 索引不好
"SELECT * FROM TICKET_TABLE where CLOSED='Y'; "
但是当我查询时它是完美的
"SELECT * FROM TICKET_TABLE where CLOSED='N'; "
我应该如何索引我的表?
最佳答案
一种选择是归档所有已关闭一段时间的旧票证,以减少行数。当您需要搜索所有工单时,您可以非常轻松地连接两个表。
关于mysql - 如何为 MySQL 表建立索引,99% 的时间我需要查询 1% 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338261/