Create table ... select from
4 отговора
201 прегледа
Create table ... select from
Снощи по малките часове взех да мажа по една табличка и рекох да и направя копие ....
Пускам си аз Create table ххх select * from ууу
и машината застърга здраво... нещо ме усъмни -> отварям data/database/
и виждам че yyy.MYD e към 500 Mb
a xxx.MYD заплашително нараства към ограничението на файловата ми система от 4 GB ....
За мое щастие не гръмна (първия път гръмна на недостатъчно дисково пространство, но му освободих) и какво беше учудването ми като видях, че разликата в размера на файловете е почти 8 пъти.
Погледнах табличката копие и на очи ми се наби това че всички полета обявени като VARCHAR () са се превърнали в CHAR със същия размер.
Не ме питайте защо имам толкова много(10) VARCHAR(255) полета, повечето от които са празни или със съвсем малко данни в тях -> правя едни конверсии и ми се налагат :-)))))
Това БЪГ ли е или е нормално ? Ако е нормално защо ? Няма логика според мен.
Не съм го пробвал с 4.х . Ефекта се получи с MySQL 3.23.56
П.С. После естествено си направих копието с :
create table xxx (...)
и Insert into xxx select * from yyy, като структурата си я дадох с varchar()
Е тук нищо няма:[линк]
Пускам си аз Create table ххх select * from ууу
и машината застърга здраво... нещо ме усъмни -> отварям data/database/
и виждам че yyy.MYD e към 500 Mb
a xxx.MYD заплашително нараства към ограничението на файловата ми система от 4 GB ....
За мое щастие не гръмна (първия път гръмна на недостатъчно дисково пространство, но му освободих) и какво беше учудването ми като видях, че разликата в размера на файловете е почти 8 пъти.
Погледнах табличката копие и на очи ми се наби това че всички полета обявени като VARCHAR () са се превърнали в CHAR със същия размер.
Не ме питайте защо имам толкова много(10) VARCHAR(255) полета, повечето от които са празни или със съвсем малко данни в тях -> правя едни конверсии и ми се налагат :-)))))
Това БЪГ ли е или е нормално ? Ако е нормално защо ? Няма логика според мен.
Не съм го пробвал с 4.х . Ефекта се получи с MySQL 3.23.56
П.С. После естествено си направих копието с :
create table xxx (...)
и Insert into xxx select * from yyy, като структурата си я дадох с varchar()
Е тук нищо няма:[линк]
Re: Create table ... select from
баси, тва си бачка по принцип
сигурен ли си че проблема не е в нещо друго?
сигурен ли си че проблема не е в нещо друго?
Re: Create table ... select from
Ами нормално е. На SELECT * в един момент му се налага да направи временна таблица - а те винаги се правят със CHAR
Изобщо CREATE ... SELECT ... прави нова таблица според резултата от заявката а не според това каква е структурата на таблиците в тази заявка.
Ако искаш точно определена структура първо си направи таблицата и после INSERT ... SELECT
в 4.1 за целта има CREATE TABLE t2 LIKE t1;
salle.online.bg/sig
Изобщо CREATE ... SELECT ... прави нова таблица според резултата от заявката а не според това каква е структурата на таблиците в тази заявка.
Ако искаш точно определена структура първо си направи таблицата и после INSERT ... SELECT
в 4.1 за целта има CREATE TABLE t2 LIKE t1;
salle.online.bg/sig
Re: Create table ... select from
е да де и аз така направих впоследствие
идеята ми беше, че правя едни огромни таблици, като данните които взимам са наляти от тхт файлове и после join-вам до полуда ...
та много бързо ми свърши диска при това положение :-)
Е тук нищо няма:[линк]
идеята ми беше, че правя едни огромни таблици, като данните които взимам са наляти от тхт файлове и после join-вам до полуда ...
та много бързо ми свърши диска при това положение :-)
Е тук нищо няма:[линк]
Re: Create table ... select from
е и на мен това ми е целта
да направя НОВА таблица , която е резултат от select + join на две друг
ама не така произволно да ми сменя типа на полетата :-((((
Е тук нищо няма:[линк]
да направя НОВА таблица , която е резултат от select + join на две друг
ама не така произволно да ми сменя типа на полетата :-((((
Е тук нищо няма:[линк]