A search matched LIKE '%|eat%' over every entry's barred keys, which no index can answer, so each one read the whole dictionary: 43-57 ms in JMdict's 218,863 entries. dictionary_search_key holds a row per key and loose key with its first one, two and three characters in columns of their own and one index on them, so the keys a query starts are an equality the index answers whatever the database's collation (Serverpod's models can't declare COLLATE "C" or text_pattern_ops). A search now takes 5-26 ms, at 1.4 million rows and 190 MB for JMdict, and its load takes 72 s instead of 33 s. The loader fills the table beside the entries and loads a dictionary again when it has none. Until then, in the minutes after the deploying server starts, the search reads the barred keys as before; those columns stay until a later release, since the server before a deploy's switch still searches them. The migration only creates the table and its index. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
34 lines
1.1 KiB
Text
34 lines
1.1 KiB
Text
### AUTOMATICALLY GENERATED DO NOT MODIFY
|
|
###
|
|
### This file is generated by Serverpod when creating a migration, do not modify it
|
|
### manually. If a collision is detected in this file when doing a code merge, resolve
|
|
### the conflict by removing and recreating the conflicting migration.
|
|
|
|
20260916165410927
|
|
20260930094729362-studysets
|
|
20260930122235111-cards
|
|
20260930145136285-reviews
|
|
20261001064926911-tree-tags-assets
|
|
20261002035419149-file-allowance
|
|
20261002191122122-notes
|
|
20261002211346701-learning-paths
|
|
20261003110855698-pdf-sources
|
|
20261007205440868-card-buried-at
|
|
20261008165051407-pdf-position
|
|
20261008223835206-dictionaries
|
|
20261009123850448-dictionary-kind
|
|
20261009145434785-dictionary-entry-version
|
|
20261009184924904-public-profiles
|
|
20261009195137836-published-studysets
|
|
20261009202105673-explore
|
|
20261009215552429-learner-count
|
|
20261009220324372-based-on
|
|
20261009224606274-feedback
|
|
20261010095547719-assistant-connector
|
|
20261012162411835-studyset-deleted-at
|
|
20261013035552510-dictionary-keys
|
|
20261014153932647-release-colour
|
|
20261015171326465-email-sign-in
|
|
20261015220121195-verified-links
|
|
20261015220626303-discussions
|
|
20261017110130653
|