Heim  >  Artikel  >  Datenbank  >  最近帮人解决一个循环优化的问题

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

WBOY
WBOYOriginal
2016-06-07 17:37:521049Durchsuche

这两天接个任务,帮人解决一个循环优化的问题。和开发联系了一下,搞明白原来是这样一个事。因为数据库比较缓慢,这些人决定把数据取到内存里处理。两张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
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn