Re: VARCHAR(32) в VARCHAR(64) или TEXT
От | Dmitry E. Oboukhov |
---|---|
Тема | Re: VARCHAR(32) в VARCHAR(64) или TEXT |
Дата | |
Msg-id | 20180419134904.oxutdfs54zdtu6rk@vdsl.uvw.ru обсуждение исходный текст |
Ответ на | Re: VARCHAR(32) в VARCHAR(64) или TEXT (Sergei Kornilov <sk@zsrv.org>) |
Ответы |
Re: VARCHAR(32) в VARCHAR(64) или TEXT
|
Список | pgsql-ru-general |
> melkij=> create table altervarchar(i int, v varchar(32)); > CREATE TABLE > melkij=> insert into altervarchar select g, 'fdsfods' || g from generate_series(1,1e7) g; > INSERT 0 10000000 > melkij=> create index on altervarchar (v); > CREATE INDEX > melkij=> set statement_timeout to '1s'; > SET > melkij=> \timing > Секундомер включён. > melkij=> alter table altervarchar alter column v type varchar(64); > ALTER TABLE > Время: 1,530 мс > melkij=> \dt+ altervarchar > Список отношений > Схема | Имя | Тип | Владелец | Размер | Описание > ------------+--------------+---------+----------+--------+---------- > monitoring | altervarchar | таблица | melkij | 498 MB | > (1 строка) > Это 9.6 на HDD, за полторы мс полгигабайта не прожуют явно. Индекс как можно заметить не мешает сам по себе. > А у вас какая версия и не отличается ли чем alter table? у меня 9.5 и v not null поле. по v построено несколько индексов (есть уникальный [gid::integer, v]) а так все остальное - так же ALTER TABLE orders ALTER COLUMN "orderid" TYPE VARCHAR(64); вешается запрос в статусе disk 13416 postgres 20 0 28G 13G disk 2:19 6.26% 28.04% postgres: tst tst 127.0.0.1(48588) ALTER TABLE все прочие уходят в статус waiting и все. дольше 30 секунд ждать не пытался - БД живая. видимо придется через промежуточный столбик делать. -- . ''`. Dmitry E. Oboukhov <unera@debian.org> : :’ : `. `~’ GPG key: 4096R/08EEA756 2014-08-30 `- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756
Вложения
В списке pgsql-ru-general по дате отправления: