最好和最快的方法来浏览数据库记录

我有一个 MySQL 数据库表,约有 5 万条记录。每条记录都有一个数字列和一个比率列。

数字列包含唯一的数字,例如:

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

因此基本上是各种随机的数字,长度各不相同,可能是 1 位数,甚至可能是 8 位数。

我有一个数字,例如 36703657896,我的任务是选择数字列中与该数字匹配的最长和最短的数字(匹配数字的开始部分)并获取其比率。例如在上述列表中,最长的匹配数字是 3670(36703657896),最短的是 3(36703657896)。

有人能提供一个快速的解决方案吗?它不一定要在 MySQL 中实现,我可以接受任何其他解决方案,比如一些更快的存储器缓存。我目前正在使用 NodeJS 和 Lua 访问此数据库,但如果有更快的解决方案并有更好的原因使用它,我可以使用任何东西。

点赞
用户4402825
用户4402825

你可以在 SQL 中这样做:

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

这假设你的 "number" 列是文本类型,否则你需要进行一些类型转换。

在 node.js 中使用 node-memcached:

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);
});
2015-02-03 20:29:23