MySQL是一个搜索大型表的高效系统吗?

Son*_*c42 0 mysql

假设我有一张大桌子,大约200万行和50列.使用MySQL,搜索整个列的特定值是多少,然后返回所述值的行号?(假设在整个列中随机分布值)

如果此类操作需要较长时间,我该怎么做才能加快速度?

Ser*_*sev 7

如果有问题的列被索引,那么它很快.

不过,不要对索引骑士.您拥有的索引越多,写入的成本就越高(插入/更新/删除).此外,它们占用磁盘空间和RAM(并且可以很容易地比表本身大).索引有利于查询,不利于写作.做出明智的选择.

我们在这里说话的速度究竟有多快?这取决于数据库计算机的配置.如果它没有足够的RAM来托管索引和数据,操作可能会受磁盘限制,性能会降低.同样会减少没有索引的操作.假设机器很好,这还取决于您的索引的选择性.如果你有一个包含10M行的表,并且使用布尔值对列进行索引,那么性能只会略有提高.否则,如果您使用许多不同的值(用户电子邮件)索引列,则查询将快几个数量级.

此外,根据现代标准,2M行的表格相当小:-)