powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация альтов по скорости
13 сообщений из 13, страница 1 из 1
Оптимизация альтов по скорости
    #38968470
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы генерируем таблицы в мускуле на основе текстового файла, в котором задаются поля и параметры, ну, типа так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
page:
id, int, auto
tit, txt
des, txt
keys, txt
chpu, chpu, index
qry, txt, index8

img:
id, int, auto
tit, txt
ext, chpu

...



Как вы наверное понимаете, с помощью create table создается только таблица с айдишником по первой строке, а все остальное альтами

Короче, на проектах, в которых набралось около 30 таблиц эти альты что-то жестко тормозят и это на пустых таблицах!! Большинство альтов срабатывают за 40мс, но бывает и по полсекунды, а некоторые иногда и на секунду с лишним тянут. И это, повторяю, на пустых таблицах!!

Подскажите, может есть какие-то хаки как альты можно ускорить?
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38968583
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixКак вы наверное понимаете, с помощью create table создается только таблица с айдишником по первой строке, а все остальное альтамиНе понимаем. Почему сразу не сгенерить create со всеми полями?
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38969204
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirLumixКак вы наверное понимаете, с помощью create table создается только таблица с айдишником по первой строке, а все остальное альтамиНе понимаем. Почему сразу не сгенерить create со всеми полями?

Потому, что когда кто-то вносит изменение в этот файл, ну например, изменение имени колонки, тогда create table перестает работать, ведь таблица уже создана
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38969208
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixПотому, что когда кто-то вносит изменение в этот файл, ну например, изменение имени колонки, тогда create table перестает работать, ведь таблица уже созданаИ что, это бывает прям так часто, что секунда прям важна?
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38969220
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixкогда кто-то вносит изменение в этот файл, ну например, изменение имени колонки, тогда create table перестает работать, ведь таблица уже создана
Ну сделай по уму - старую переименуй, новую создай, перелей данные, старую дропни.
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38969347
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixПотому, что когда кто-то вносит изменение в этот файл, ну например, изменение имени колонки, тогда create table перестает работать, ведь таблица уже созданаLumixМы генерируем таблицыТогда уж пишите как-нибудь наподобие "мы синхронизируем структуру таблиц с...". Слово "генерируем" лично мне однозначно говорит о том, что на момент генерации таблиц нет.
Ну и действительно, неужели плюс-минус секунда так важна при выполнении разовой операции?
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38971142
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaНу сделай по уму - старую переименуй, новую создай, перелей данные, старую дропни.

Чё-то где-то в доках я когда-то читал, что вроде мускул сам это делает при альтах на добавление, разве нет?

tanglirНу и действительно, неужели плюс-минус секунда так важна при выполнении разовой операции?

20 таблиц по примерно 15 полей в каждой итого примерно 300
на каждую позицию два альта + альты на создание индексов
итого 600-700 запросов
поскольку это веб-приложение и его установка/апдейт происходит с помощью http://site.ru/install/
а на серверах стоит лимит в 30 секунд на выполнение скрипта
именно поэтому все альты не успевают сработать

* * * * * *

Читая эту ветку я пока склоняюсь к такой мысли: перед создание таблицы проверять её наличие, если она есть тогда фигачим альтами, а если её нет, тогда фигачим create'ом... эх... ещё один сборщик составлять и отлаживать. :-)
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38971144
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixи это на пустых таблицах!!может, тогда не ломать голову и сразу делать drop if exists + create?
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38971147
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixа на серверах стоит лимит в 30 секунд на выполнение скрипта
именно поэтому все альты не успевают сработатьРазбивайте на фрагменты.
Некоторые CMS умудряются при таких ограничениях собственные бэкапы в пару ГБ делать.
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38971150
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix20 таблиц по примерно 15 полей в каждой итого примерно 300
на каждую позицию два альта + альты на создание индексов
итого 600-700 запросовКстати, в одном альте можно делать сразу несколько изменений у одной таблицы. Так что, возможно, хватит и 20 альтов.
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38971156
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftLumix20 таблиц по примерно 15 полей в каждой итого примерно 300
на каждую позицию два альта + альты на создание индексов
итого 600-700 запросовКстати, в одном альте можно делать сразу несколько изменений у одной таблицы. Так что, возможно, хватит и 20 альтов.

Опа.... а можно поподробнее??

Неужели

Код: sql
1.
alter table t add column a int add b int add c int add index a_index (a)



прям вообще быстрее, чем

Код: sql
1.
2.
3.
4.
alter table t add column a int;
alter table t add b int;
alter table t add c int;
alter table t add index a_index (a)



???
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38971161
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftНекоторые CMS умудряются при таких ограничениях собственные бэкапы в пару ГБ делать.

на наверное они не сами бекап делают, а из скриптов через командную строку кидают приказ на что-нибудь типа mysqldump

мы делаем именно так и бекапы работают очень и очень быстро
а заливаем тоже через комнадную строку mysql db_name > dump.bkp.sql
получается очень и очень быстро
...
Рейтинг: 0 / 0
Оптимизация альтов по скорости
    #38971165
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixОпа.... а можно поподробнее?? http://dev.mysql.com/doc/refman/5.5/en/alter-table.html [alter_specification [, alter_specification] ...]
LumixНеужели
Код: sql
1.
alter table t add column a int add b int add c int add index a_index (a)

прям вообще быстрее, чем
Код: sql
1.
2.
3.
4.
alter table t add column a int;
alter table t add b int;
alter table t add c int;
alter table t add index a_index (a)

???Если в таблице есть данные, то почти наверняка - да, т.к. некоторые альты внутри себя фактически выполняют копирование всей таблицы. А одно копирование явно быстрее, чем несколько копирований.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация альтов по скорости
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]