一般来说,
对于这么一个语句 Select * from table A order by x limit y;
都是先排序,再取前y个的。如果我现在修改Postgresql的源代码 ,让这句话执行时效率更高一些也就是说,直接取前y个,不排序,(前提是y不是很大)
这个是可以用一个简单的算法做到的关键是我现在刚开始上手,对Postgresql还不是很熟悉只知道这样的操作 应该在查询优化 和查询执行里面去做但是具体这样的操作应该涉及哪些文件或者函数呢?从哪开始着手呢?请教达人,谢谢拉
对于这么一个语句 Select * from table A order by x limit y;
都是先排序,再取前y个的。如果我现在修改Postgresql的源代码 ,让这句话执行时效率更高一些也就是说,直接取前y个,不排序,(前提是y不是很大)
这个是可以用一个简单的算法做到的关键是我现在刚开始上手,对Postgresql还不是很熟悉只知道这样的操作 应该在查询优化 和查询执行里面去做但是具体这样的操作应该涉及哪些文件或者函数呢?从哪开始着手呢?请教达人,谢谢拉
恩我正在想有没有好的思路。
我现在对上述的那个select语句 进行了调试跟踪基本清楚 整个流程中,调用哪些方法了。关键就是着手改的时候 有些头疼是否应该不理会逻辑查询 ,直接在物理查询的时候 ,强制的不让它排序,也就是
不修改它生成的plan树。还是生成plan的时候就要修改 我还是不是很清楚