gpt4 book ai didi

mysql - MySQL如何处理庞大的数据库?

转载 作者:行者123 更新时间:2023-11-29 14:30:29 25 4
gpt4 key购买 nike

举个例子:

假设我的数据库有 1 个表,其中字段为

id、名字(VARCHAR 100 个字符)、姓氏(VARCHAR 100 个字符)、大约(VARCHAR 10,000 个字符)

现在假设数据库有 100 Gigs 大。

在只有 4 GB RAM 的机器上随机访问会是什么样子?

每次查询都会花费恒定的时间吗?

最佳答案

如果您搜索名字并且未对其进行索引,服务器将读取表中的每一行并将其与 where 子句进行比较。该查询在时间上可能会有很大差异,因为检索结果所需的时间取决于行的位置。例如,名字“a”很快就能找到,而名字“z”则需要更长的时间。本质上,您正在对数据库进行线性/顺序访问。

如果名字上有索引,MySQL 会在该列上构建一棵树。使用树进行搜索时效率很高。基本上,查找值“a”和“z”应该执行相同数量的操作,因为您正在进行二分搜索。请注意,我说的是操作。

现在有一种方法可以保证查询始终在相同的时间内执行。请记住,虽然数据库是内存密集型的,但大多数人都忽略了数据库实际上与磁盘 io 绑定(bind)的事实。这些因素使得您不太可能保证执行时间始终是可预测的且恒定的。但是,您可以确保所使用的操作数量保持优化。

还有一件事,虽然索引可以加快读取速度,但会减慢写入速度。所以索引是一把双刃剑。仅索引您真正需要的内容。

关于mysql - MySQL如何处理庞大的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10117697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com