gpt4 book ai didi

mysql - 浏览数据库记录的最佳且最快的方法

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

我有一个大约有 50k 条记录的 mysql 数据库表。每条记录都有一个数字列和一个比率列。

数字列包含独特的数字,例如:

  • 3670
  • 3720
  • 654
  • 36
  • 45225
  • 3
  • 675572

所以基本上每种随机数都有不同的长度,它可以是 1 位甚至 8 位长。

我有一个号码,比如36703657896,我的任务是从号码列中选择最长和最短的匹配号码(匹配到号码的开头)并获取费率。从上面提到的列表中,最长的匹配数字是 3670 (36703657896),而最短的匹配数字是 3 (36703657896)。

有人可以提出快速解决方案吗?它不一定必须在 mysql 中实现,我愿意接受任何其他解决方案,例如一些 memcache,如果它更快的话。我目前正在使用 NodeJS 和 Lua 来访问这个数据库,但我可以使用任何东西,以防它更快并且有更好的理由使用它。

最佳答案

您可以在 SQL 中执行此操作:

SELECT number FROM yourtable WHERE 
number = substring('36703657896',1,length(number));

这假设您的“数字”列是文本类型,如果不是,您将必须进行一些类型转换。

在带有node-memcached的node.js中:

var str='36703657896', maxMatchLength=4; 
var getkeys=[];
for (var i=0; i <= maxMatchLength; i++) {
getkeys[i] = str.substring(0,i);
}
memcached.getMulti(getkeys, function (err, data) {
console.log(data);
});

关于mysql - 浏览数据库记录的最佳且最快的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28297243/

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