我有一个查看器,我希望客户端可以预览SQL查询的1000个结果。 MySQL似乎是唯一没有优化SELECT * FROM (user_query) x LIMIT 1000
的客户端,并且它在执行外部子查询之前等待整个子查询执行。
我对执行mysql查询的想法如下:
LIMIT = 1000
try:
cursor.execute(user_query + ' LIMIT %s' % LIMIT)
except:
try:
cursor.execute(user_query)
except:
pass
res = [cursor.fetchone() for i in range(LIMIT)]
但是我想比上面有更好的方法来限制用户查询。什么是更好的方法?
似乎最好的方法似乎是使用mysql query rewrite plugin,但是我正在尝试在python中执行此操作。另外,我尝试使用antlr_plsql
和mysqlparse
和queryparser
以及其他一些库,但这些库似乎都不准确(甚至根本无法解析有效的mysql语句)