Maison > Article > base de données > 最近帮人解决一个循环优化的问题
这两天接个任务,帮人解决一个循环优化的问题。和开发联系了一下,搞明白原来是这样一个事。因为数据库比较缓慢,这些人决定把数据取到内存里处理。两张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