ホームページ  >  記事  >  データベース  >  最近帮人解决一个循环优化的问题

最近帮人解决一个循环优化的问题

WBOY
WBOYオリジナル
2016-06-07 17:37:521053ブラウズ

这两天接个任务,帮人解决一个循环优化的问题。和开发联系了一下,搞明白原来是这样一个事。因为数据库比较缓慢,这些人决定把数据取到内存里处理。两张10w条左

这两天接个任务,,帮人解决一个循环优化的问题。

和开发联系了一下,搞明白原来是这样一个事。因为数据库比较缓慢,这些人决定把数据取到内存里处理。两张10w条左右的表写了个嵌套循环...


本来听到数据库数据加载内存这一个说法,立刻想到是不是可以加个memcached缓存。但是一看sql,各种复杂的逻辑和多表连接,还是算了。。。

我和他说,你这个思路完全是不正确的。数据库有问题应该explain sql看看到底慢在哪。。。加载内存这种事情应该是vfs层的缓存机制实现的么。如果你想把数据库都加载到内存里处理,不相当于做一个rdbms么,我哪有这能力。

然后我又问他,这些内存里的数据要不要和数据源进行同步?他说,数据取出来用一下,用完就丢。。

好吧。。。看来索引什么的也没意义了。。


最后,只能给了他一个O(m+n)的算法。做了一个demo给他,灰常简单的东西:

#!/usr/bin/env python #coding:utf-8 #简单演示data1和data2的对key的内连接。更多种的表达式解析需要对模式进行重新设计。比如可以再写一个sql解析引擎 #想要实现的sql功能如下: #select * from data1 where data1.value
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。