首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索超过300万条记录的mysql数据库

搜索超过300万条记录的mysql数据库
EN

Stack Overflow用户
提问于 2019-01-25 00:36:24
回答 2查看 229关注 0票数 0

在我的项目中,我必须搜索包含300多万条记录的Mysql数据库,并且我必须在我的搜索中找到一个长度为15个符号的字符串(车辆VIN号)。

我的问题是: 1.搜索会占用大量的时间和系统资源吗? 2.我应该搜索哪种类型的字段- varchar、文本、small_text或..?3.任何建议,使搜索速度更快,我们将不胜感激!

这个网站每天的访问量是1000次--是不是很多?我还没有测试,但我想在进行任何编码之前分享我的担忧。

提前感谢您的宝贵时间!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-25 01:00:44

根据经验:

我们有多个数据库,其中许多数据库的行数远远超过3000万行。有了索引,适当的配置和像样的硬件,我们的查找需要大约1ms。影响查找时间的因素有很多。

最有影响力的是索引。如果您在VIN表上添加一个简单的索引,您应该能够显著减少检索所需数据所需的时间。

除此之外,我强烈建议您进行MySQL调优,以确保您的MySQL服务器有足够的资源可用。我建议使用这个工具来启动https://github.com/major/MySQLTuner-perl。虽然它可能会推荐很多东西,但我强烈建议研究每个建议的更改,并确保它对您现有的硬件是最好的。

最后但并非最不重要的一点是,确保您的机器是为数据库而设计的。(例如:在数据库服务器上使用Raid5非常糟糕)。如果您的计算机具有固态硬盘,请考虑在固态硬盘服务器配置上查找MySQL的建议。

票数 1
EN

Stack Overflow用户

发布于 2019-01-25 00:47:05

Mysql仍然很强大。如果可以,请选中以将其更新到较新的版本。

VIN号码是唯一的吗?cardinality看起来怎么样?

如果基数很好,您的数据大部分是唯一的,您可以在列上创建一个index,您的搜索将(几乎)是即时的。

此外,您希望仅按VIN或一组字段进行搜索,例如VIN +其他参数。如果要按多个字段进行搜索,请将这些字段也包括在索引中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54351399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档