我可以索引MySQL tinyInt吗?

时间:2014-11-13 20:46:48

标签: mysql database indexing mariadb

我正在努力让网页加载速度非常快。为了帮助我,我想严格根据布尔列查询表。

在我的例子中,此表中相对较少的行将此布尔列设置为true,其余行将为false。

数据库通常可以创建一个漂亮的小搜索树,也就是说,如果你想要假,那么向左移动,如果你想要的话,向右移动,到达各自主键的列表?

1 个答案:

答案 0 :(得分:3)

当然你可以在上面写一个索引。

然后你可以运行这样的查询:

SELECT *
FROM mytable
WHERE mybool = 1
AND [another condition here]

添加的索引将确保第二个条件仅在mybool设置为1的记录上运行,这在理论上会使您的查询更快(假设mybool = 1上的基数高且行数很多)。

请注意,正确使用索引可以提高读取速度,但由于索引在插入过程中需要更新,因此可能会降低写入速度。

编辑:根据要求,添加索引:

ALTER TABLE mytable ADD INDEX (mybool)