Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在pythonwx中显示Sqlite数据库中的大型数据集_Python_Sqlite_Wxpython_Wxwidgets - Fatal编程技术网

在pythonwx中显示Sqlite数据库中的大型数据集

在pythonwx中显示Sqlite数据库中的大型数据集,python,sqlite,wxpython,wxwidgets,Python,Sqlite,Wxpython,Wxwidgets,我有一个大型数据集(日志数据),它存储在SQLite3数据库中。我使用Wx.listctrl创建了一个Python GUI,用于显示查询中的数据。它适用于少量数据,但显然挂起在较大的数据集上。。因此,我想实施两件事中的一件: -分页是在listctrl中显示前5000条记录,然后如果用户单击按钮,将显示下5000条记录。。诸如此类。。 或 -当用户向下滚动列表时,它会不断填充新数据 我将如何实现这些概念之一?提前感谢您的帮助 将其设置为虚拟控件,如中所述。listview将根据需要调用回调,以请

我有一个大型数据集(日志数据),它存储在SQLite3数据库中。我使用Wx.listctrl创建了一个Python GUI,用于显示查询中的数据。它适用于少量数据,但显然挂起在较大的数据集上。。因此,我想实施两件事中的一件:

-分页是在listctrl中显示前5000条记录,然后如果用户单击按钮,将显示下5000条记录。。诸如此类。。 或 -当用户向下滚动列表时,它会不断填充新数据


我将如何实现这些概念之一?提前感谢您的帮助

将其设置为虚拟控件,如中所述。listview将根据需要调用回调,以请求显示的特定行。

将其设置为虚拟控件,如中所述。listview将根据需要调用回调,以请求显示的特定行。

在不同的场景中,策略将不同。假设您只使用wxPython进行表示,并且您有一个单独的模块/包来处理数据。wxPython控件仅从数据抽象层获取数据

场景一:将所有日志数据加载到内存中,并使用wx.listctrl或wx.listview显示行

场景二:更新wx视图时从数据库获取数据

在场景I中,您只需要设置一个变量来记住UI读取到的位置,或者如果您将日志加载为列表,您甚至可以简单地使用列表滑动。在场景I中,可以通过向下/向上滚动来自动更新视图,因为所有数据都已加载,不会再进行sqlite db连接。在场景II中,通过向下/向上滚动来实现自动更新是一个错误的选择,因为会有太多的db操作-想象一下,您很快向下滚动,期望得到第5000行


在场景II中,您可以设置页面大小并使用“限制/偏移”来获取所需的数据集。为偏移量保留另一个变量。使用变量page_size和offset,您可以简单地获取数据并更新wx视图。这种情况特别适合限制内存使用。我不知道您的日志有多大,但毕竟将其全部加载到内存中不是一个好主意,因为日志不断增长,您可能还需要同时加载其他相对较大的数据集。

在不同的场景中,策略会有所不同。假设您只使用wxPython进行表示,并且您有一个单独的模块/包来处理数据。wxPython控件仅从数据抽象层获取数据

场景一:将所有日志数据加载到内存中,并使用wx.listctrl或wx.listview显示行

场景二:更新wx视图时从数据库获取数据

在场景I中,您只需要设置一个变量来记住UI读取到的位置,或者如果您将日志加载为列表,您甚至可以简单地使用列表滑动。在场景I中,可以通过向下/向上滚动来自动更新视图,因为所有数据都已加载,不会再进行sqlite db连接。在场景II中,通过向下/向上滚动来实现自动更新是一个错误的选择,因为会有太多的db操作-想象一下,您很快向下滚动,期望得到第5000行


在场景II中,您可以设置页面大小并使用“限制/偏移”来获取所需的数据集。为偏移量保留另一个变量。使用变量page_size和offset,您可以简单地获取数据并更新wx视图。这种情况特别适合限制内存使用。我不知道你的日志有多大,但毕竟把它全部加载到内存中不是一个好主意,因为日志不断增长,你可能还需要同时加载其他相对较大的数据集。

我正在寻找一位导师,我会付钱教我一些这方面的东西(通过webex)。。我一个人完成这件事花了我很长时间,我需要一些指导。。obv用于支付。你有兴趣吗?很抱歉,我太忙了,不能做你的家教。我相信你会在你身边找到一个擅长wxPython的人。谢谢你的提问;-)我正在寻找一个导师,我将支付教我一些这方面的东西(通过webex)。。我一个人完成这件事花了我很长时间,我需要一些指导。。obv用于支付。你有兴趣吗?很抱歉,我太忙了,不能做你的家教。我相信你会在你身边找到一个擅长wxPython的人。谢谢你的提问;-)