When loading my library with 146000+ entries it never appears to finish loading.
I can see that it tries to execute:
But the application becomes unresponsive and after leaving it for 20+ min nothing appears to have changed.
I executed the same SQL in sqlitebrowser and it also never finished.
Instead, and the response was instant, but I'm not sure how to translate this to alchemy code
Loading the library should at most take a few minutes.
2025-12-02 00:35:17 [info ] [FFmpeg] Using FFprobe location: ffprobe (Found)
2025-12-02 00:35:17 [info ] [FFmpeg] Using FFmpeg location: ffmpeg (Found)
2025-12-02 00:35:17 [info ] [ResourceManager] Resources Registered: count=37
2025-12-02 00:35:17 [info ] [Settings] Global Settings File Path not specified, using default
2025-12-02 00:35:17 [info ] [Settings] Reading Global Settings File path=PosixPath('/home/racerand/.config/TagStudio/settings.toml')
2025-12-02 00:35:17 [info ] [Cache] Cache File not specified, using default one filename=/home/racerand/.config/TagStudio/TagStudio.ini
qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 8.0 GPL version 3 or later
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
2025-12-02 00:35:19 [error ] Path does not exist. open_path=None
2025-12-02 00:35:42 [info ] [Library] Opening SQLite Library connection_string=sqlite:////run/media/racerand/4bd980f1-0194-4683-9164-d1aaa53047a4/Fansly/.TagStudio/ts_library.sqlite library_dir=PosixPath('/run/media/racerand/4bd980f1-0194-4683-9164-d1aaa53047a4/Fansly')
2025-12-02 00:35:42 [info ] [Library] DB_VERSION: 103
2025-12-02 00:35:42 [info ] [Library] Creating DB tables...
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.TITLE: DefaultField(id=0, name='Title', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=True)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.AUTHOR: DefaultField(id=1, name='Author', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.ARTIST: DefaultField(id=2, name='Artist', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.URL: DefaultField(id=3, name='URL', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DESCRIPTION: DefaultField(id=4, name='Description', type=<FieldTypeEnum.TEXT_BOX: 'Text Box'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.NOTES: DefaultField(id=5, name='Notes', type=<FieldTypeEnum.TEXT_BOX: 'Text Box'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.COLLATION: DefaultField(id=9, name='Collation', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DATE: DefaultField(id=10, name='Date', type=<FieldTypeEnum.DATETIME: 'Datetime'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DATE_CREATED: DefaultField(id=11, name='Date Created', type=<FieldTypeEnum.DATETIME: 'Datetime'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DATE_MODIFIED: DefaultField(id=12, name='Date Modified', type=<FieldTypeEnum.DATETIME: 'Datetime'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DATE_TAKEN: DefaultField(id=13, name='Date Taken', type=<FieldTypeEnum.DATETIME: 'Datetime'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DATE_PUBLISHED: DefaultField(id=14, name='Date Published', type=<FieldTypeEnum.DATETIME: 'Datetime'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.BOOK: DefaultField(id=17, name='Book', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.COMIC: DefaultField(id=18, name='Comic', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.SERIES: DefaultField(id=19, name='Series', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.MANGA: DefaultField(id=20, name='Manga', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.SOURCE: DefaultField(id=21, name='Source', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DATE_UPLOADED: DefaultField(id=22, name='Date Uploaded', type=<FieldTypeEnum.DATETIME: 'Datetime'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.DATE_RELEASED: DefaultField(id=23, name='Date Released', type=<FieldTypeEnum.DATETIME: 'Datetime'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.VOLUME: DefaultField(id=24, name='Volume', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.ANTHOLOGY: DefaultField(id=25, name='Anthology', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.MAGAZINE: DefaultField(id=26, name='Magazine', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.PUBLISHER: DefaultField(id=27, name='Publisher', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.GUEST_ARTIST: DefaultField(id=28, name='Guest Artist', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.COMPOSER: DefaultField(id=29, name='Composer', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:42 [debug ] ValueType already exists field=<FieldID.COMMENTS: DefaultField(id=30, name='Comments', type=<FieldTypeEnum.TEXT_LINE: 'Text Line'>, is_default=False)>
2025-12-02 00:35:43 [info ] [Config] Thumbnail Cache Size: 1.02 GB
2025-12-02 00:35:43 [info ] [Ignore] Processing the .ts_ignore file... last_mtime=None library=PosixPath('/run/media/racerand/4bd980f1-0194-4683-9164-d1aaa53047a4/Fansly') new_mtime=1763158157.844917
2025-12-02 00:35:43 [info ] [Ignore] glob_patterns=[<Censored>]
2025-12-02 00:35:43 [warning ] [PanelModal] add_callback not implemented for IgnoreModal
2025-12-02 00:35:43 [info ] [Ignore] No updates to the .ts_ignore detected last_mtime=1763158157.844917 library=PosixPath('<PATH_TO_LIBRARY') new_mtime=1763158157.844917
2025-12-02 00:35:43 [info ] searching library filter=BrowsingState(page_index=0, sorting_mode=<SortingModeEnum.DATE_ADDED: 'file.date_added'>, ascending=False, random_seed=0, show_hidden_entries=False, query=None) query_full='SELECT DISTINCT entries.id \nFROM entries \nWHERE NOT (EXISTS (SELECT 1 \nFROM tags, tag_entries \nWHERE entries.id = tag_entries.entry_id AND tags.id = tag_entries.tag_id AND tags.is_hidden)) ORDER BY entries.id DESC'
Checklist
TagStudio Version
Library 103 with commit 88d0b47
Operating System & Version
NixOS 25.05
Description
When loading my library with 146000+ entries it never appears to finish loading.
I can see that it tries to execute:
But the application becomes unresponsive and after leaving it for 20+ min nothing appears to have changed.
I executed the same SQL in sqlitebrowser and it also never finished.
I tried executing:
Instead, and the response was instant, but I'm not sure how to translate this to alchemy code
Expected Behavior
Loading the library should at most take a few minutes.
Steps to Reproduce
Logs