|
1 | 1 | /* |
2 | | -Выгрузка из БД: |
| 2 | +Выгрузка данных из БД: |
3 | 3 | psql postgresql://user@host:6001/db_name \ |
4 | | - --command='\copy (select id,pid,word,checked from sphinx_wordforms order by word) to stdout csv' > sphinx_wordforms.csv |
5 | | -xz -zc9 --threads=8 sphinx_wordforms.csv > sphinx_wordforms.csv.xz |
| 4 | + --command='\copy (select id,pid,word,checked from public.wordforms order by word) to stdout csv' \ |
| 5 | + > wordforms.csv |
| 6 | +xz -zc9 --threads=8 wordforms.csv > wordforms.csv.xz |
6 | 7 | */ |
7 | 8 |
|
8 | 9 | CREATE EXTENSION IF NOT EXISTS fuzzymatch; |
9 | 10 | CREATE EXTENSION IF NOT EXISTS pg_trgm; |
10 | 11 |
|
11 | | -CREATE TABLE public.sphinx_wordforms ( |
| 12 | +CREATE TABLE public.wordforms ( |
12 | 13 | id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY, |
13 | 14 | pid integer DEFAULT 0 NOT NULL, |
14 | 15 | word text NOT NULL check (length(word) between 1 and 100), |
15 | 16 | checked boolean |
16 | 17 | ); |
17 | | ---ALTER TABLE public.sphinx_wordforms OWNER TO alexan; |
| 18 | +--ALTER TABLE public.wordforms OWNER TO alexan; |
18 | 19 |
|
19 | | -COMMENT ON TABLE public.sphinx_wordforms IS 'Слова русского языка со словоформами'; |
20 | | -COMMENT ON COLUMN public.sphinx_wordforms.id IS 'Идентификатор'; |
21 | | -COMMENT ON COLUMN public.sphinx_wordforms.pid IS 'Идентификатор леммы (начальной, словарной формы слова)'; |
22 | | -COMMENT ON COLUMN public.sphinx_wordforms.word IS 'Слово или словосочетание в нижнем регистре'; |
23 | | -COMMENT ON COLUMN public.sphinx_wordforms.checked IS 'Проверенное слово?'; |
| 20 | +COMMENT ON TABLE public.wordforms IS 'Слова русского языка со словоформами'; |
| 21 | +COMMENT ON COLUMN public.wordforms.id IS 'Идентификатор'; |
| 22 | +COMMENT ON COLUMN public.wordforms.pid IS 'Идентификатор леммы (начальной, словарной формы слова)'; |
| 23 | +COMMENT ON COLUMN public.wordforms.word IS 'Слово или словосочетание в нижнем регистре'; |
| 24 | +COMMENT ON COLUMN public.wordforms.checked IS 'Проверенное слово?'; |
24 | 25 |
|
25 | | -\copy public.sphinx_wordforms from program 'xzcat sphinx_wordforms.csv.xz' with (format csv, header true); |
| 26 | +\copy public.wordforms from program 'xzcat wordforms.csv.xz' with (format csv, header true); |
26 | 27 |
|
27 | 28 | -- создавать индексы после вставки данных быстрее, чем наоборот |
28 | 29 |
|
29 | | -CREATE INDEX idx_sphinx_wordforms_pid ON public.sphinx_wordforms USING btree (pid); |
30 | | -CREATE UNIQUE INDEX idx_sphinx_wordforms_wildspeed_word_unique_lower ON public.sphinx_wordforms USING btree (lower((word)) varchar_pattern_ops); |
31 | | -CREATE INDEX idx_sphinx_wordforms_word ON public.sphinx_wordforms USING btree (word); |
| 30 | +CREATE INDEX idx_sphinx_wordforms_pid ON public.wordforms USING btree (pid); |
| 31 | +CREATE UNIQUE INDEX idx_sphinx_wordforms_wildspeed_word_unique_lower ON public.wordforms USING btree (lower((word)) varchar_pattern_ops); |
| 32 | +CREATE INDEX idx_sphinx_wordforms_word ON public.wordforms USING btree (word); |
32 | 33 |
|
33 | 34 | -- создавать внешние ключи после создания индексов быстрее, чем наоборот |
34 | | -ALTER TABLE ONLY public.sphinx_wordforms ADD CONSTRAINT v3_sphinx_wordforms_fk1 FOREIGN KEY (pid) REFERENCES public.sphinx_wordforms(id); |
| 35 | +ALTER TABLE ONLY public.wordforms ADD CONSTRAINT v3_sphinx_wordforms_fk1 FOREIGN KEY (pid) REFERENCES public.wordforms(id); |
35 | 36 |
|
36 | | -CREATE INDEX /*CONCURRENTLY*/ IF NOT EXISTS custom_query_group_name_name_trigram_index ON public.custom_query_group_name USING GIN (lower(name) gin_trgm_ops); |
37 | | -CREATE INDEX /*CONCURRENTLY*/ IF NOT EXISTS sphinx_wordforms_word_trigram_index ON public.sphinx_wordforms USING GIN (lower(word) gin_trgm_ops); |
| 37 | +--CREATE INDEX /*CONCURRENTLY*/ IF NOT EXISTS custom_query_group_name_name_trigram_index ON public.custom_query_group_name USING GIN (lower(name) gin_trgm_ops); |
| 38 | +CREATE INDEX /*CONCURRENTLY*/ IF NOT EXISTS sphinx_wordforms_word_trigram_index ON public.wordforms USING GIN (lower(word) gin_trgm_ops); |
38 | 39 |
|
39 | | -SELECT COUNT(*) FROM sphinx_wordforms; -- 1,241,857 записей |
| 40 | +SELECT COUNT(*) FROM public.wordforms; -- 1,241,857 записей |
0 commit comments