我有一个带有列的帖子表id (INT, primary key), name(VARCHAR), status(TINYINT)
。帖子的状态可以是1, 2, 3 or 4
。并且,比如说,我想选择状态为 2 的帖子。如何优化表以进行快速查询,因为为状态字段添加索引并没有太大帮助。
我使用 mysql 5.5。引擎可以是innodb
或myisam
。
谢谢
更新评论
据我了解索引是如何工作的,当我们添加索引时,它有点创建该列的副本,但是以有序的方式 - 按数字(或对于文本 - 按字母顺序),因此它提供了二进制搜索的可能性。因此,如果我们需要找到某个值,我们可以避免对表进行全扫描。但是在这种情况下,假设我的表中有 100K 行,并且大致说 - 具有 statuses 的行数相等1, 2, 3 and 4
。如果我为该字段添加索引,毕竟它应该对剩余的 25k 行进行线性搜索,并且如果我们考虑到添加索引会减慢插入和更新速度,那么它可能不值得。
询问 -SELECT id, name FROM posts WHERE status = 2