Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ADD COLUMN без перезаписывания всей таблицы / 17 сообщений из 17, страница 1 из 1
30.10.2014, 23:44:02
    #38792373
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
Собственно сабж.

Существует ли какой-то движок, форк или версия mysql, в которой добавление колонки не будет требовать пересоздание или перезаписывание по месту всей таблицы?
Гуглеж искомого не дал. Даже после всех нововведений 5.6 добавление колонки все равно требует огромного числа дисковых операций.
...
Рейтинг: 0 / 0
31.10.2014, 21:49:23
    #38793418
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
Мда, спецы еще те.

Фича найдена в tokudb

http://www.tokutek.com/tokudb-for-mysql/


Hot Column Addition/Deletion/Rename allows administrators to rapidly define and add new fields
...
Рейтинг: 0 / 0
31.10.2014, 21:55:32
    #38793419
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
nolocky,

Если Вам актуальны Hot Column Addition, то зачем вообще брать MySQL?

Хотя за ссылку спасибо.
...
Рейтинг: 0 / 0
31.10.2014, 22:01:43
    #38793422
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
miksoftnolocky,

Если Вам актуальны Hot Column Addition, то зачем вообще брать MySQL?

Хотя за ссылку спасибо.
я его и не беру, я пока оцениваю его пригодность к продукционному использованию. и изучаю типовые сценарии его применения.


все что я вижу сейчас - это то, что в виду невозможности добавлять колонки в сколько-то больших базах данных единственный паттерн применения MySQL из коробки - это EAV, вернее key-value, где value это e-blob (json, к примеру, или xml).
как это делает facebook.

или сверхмелкие базы данных, до миллиона записей на таблицу (типовые сайты-бложики), где добавление одной колонки не будет отправлять сайт в многочасовую недоступность

что довольно странно, уже вроде не первый год серверу, а такие простейшие вопросы, как добавление колонки - не могут решить
...
Рейтинг: 0 / 0
31.10.2014, 22:07:21
    #38793424
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
nolockyв сколько-то больших базах данных единственный паттерн применения MySQL из коробки - это EAVУвы, EAV в MySQL тоже нужно уметь готовить.
"В лоб", бывает, получаются удручающие результаты.
nolockyтиповые сайты-бложикиНу да, сайты и новички (которым все равно в какой СУБД сдавать зачет), имхо, составляют львиную долю установок MySQL.
nolockyчто довольно странно, уже вроде не первый год серверу, а такие простейшие вопросы, как добавление колонки - не могут решитьMySQL в последние годы много времени потратил на смену собственников. Отчего, собственно, и стали так активно расти форки.
...
Рейтинг: 0 / 0
31.10.2014, 22:12:11
    #38793428
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
miksoftMySQL в последние годы много времени потратил на смену собственников. Отчего, собственно, и стали так активно расти форки.

Не убедительно. Моментальный ADD COLUMN во всех других базах данных (коммерческих, или изначально коммерческих, вроде Interbase) был доступен изначально, еще с 80-х годов.

А тут - нет. Даже в sqlite ADD COLUMN не требует пережевывания всей таблицы, собственно mysql - это единственная SQL база, где я такое увидел, и это было сильно неожиданно.
...
Рейтинг: 0 / 0
31.10.2014, 22:17:20
    #38793431
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
nolockyНе убедительно.Да я и не пытался ни в чем убеждать, просто поясняю.

В MySQL есть и похуже вещи, которые не исправлены до сих пор или исправлены совсем недавно, хотя, опять же, в других СУБД они есть давным-давно.
Так что не не берите MySQL, не надо :)
...
Рейтинг: 0 / 0
31.10.2014, 22:33:22
    #38793440
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
miksoftТак что не не берите MySQL, не надо :)

Мне его в любом случае придется брать на попробовать, для написания своего engine прямого доступа в nosql базу (для реализации newsql, в кластерной среде - локальный mysql будет стоять на каждой ноде и смотреть сразу в локальную nosql lmdb).

В других серверах БД возможности написать свой engine относительно дешево пока не замечено.
Хотя еще есть шанс custom ODBC driver, но то такое, кластер из этого точно не собрать.
...
Рейтинг: 0 / 0
31.10.2014, 22:38:14
    #38793442
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
nolockyХотя еще есть шанс custom ODBC driver, но то такое, кластер из этого точно не собрать.

Хотя скорее всего это будет просто собственная R/O FUSE файловая система, которая будет предоставлять таблицы в виде .csv псевдо файлов, которые уже будет читать Oracle XE как EXTERNAL TABLE через даталинки и отдавать в аналитику в привычном для всех виде.

Но... у MySQL еще есть шанс нас убедить своим перфомансом на SELECT из кастомного ENGINE. Или из родного CSV
...
Рейтинг: 0 / 0
01.11.2014, 08:41:35
    #38793532
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
nolockymiksoftnolocky,

Если Вам актуальны Hot Column Addition, то зачем вообще брать MySQL?

Хотя за ссылку спасибо.
я его и не беру, я пока оцениваю его пригодность к продукционному использованию. и изучаю типовые сценарии его применения.ну, не самая лучшая СУБД в мире, да.

но и добавление колонки в бд не самая ходовая операция. в бд обычно структура не меняется после окончания разработки приложения.

nolockyчто довольно странно, уже вроде не первый год серверу, а такие простейшие вопросы, как добавление колонки - не могут решитьеще раз, это мало кому нужно.
...
Рейтинг: 0 / 0
01.11.2014, 11:09:13
    #38793570
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
MasterZivnolockyпропущено...

я его и не беру, я пока оцениваю его пригодность к продукционному использованию. и изучаю типовые сценарии его применения.ну, не самая лучшая СУБД в мире, да.

но и добавление колонки в бд не самая ходовая операция. в бд обычно структура не меняется после окончания разработки приложения.

nolockyчто довольно странно, уже вроде не первый год серверу, а такие простейшие вопросы, как добавление колонки - не могут решитьеще раз, это мало кому нужно.

не надо рассказывать сказки, 90% всех изменений в потрелизных патчах - это расширение схемы - новые таблицы и колонки


просто на микроскопически базенках сайтов визиток этот косяк - пережевывание таблицы при добавлении колонки - никто еще не заметил


а фейсбучек с этой проблемой столкнулся уже на третьей итерации и перешел на еблобы EAV, превратив субд в неструктированный сторидж
...
Рейтинг: 0 / 0
01.11.2014, 18:22:55
    #38793867
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
nolocky...
а фейсбучек с этой проблемой столкнулся уже на третьей итерации и перешел на еблобы EAV, превратив субд в неструктированный сторидж


Приведите , пожалуйста ссылку.

Быстрый поиск показал что у них есть
многослойная система доступа и
несколько вариантов доступа, кеша и доставки
для разного вида данных.

Оказа от релейшнл основы МыСКЛ я не нашел.
...
Рейтинг: 0 / 0
01.11.2014, 21:31:59
    #38793944
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
javajdbcnolocky...
а фейсбучек с этой проблемой столкнулся уже на третьей итерации и перешел на еблобы EAV, превратив субд в неструктированный сторидж


Приведите , пожалуйста ссылку.

Быстрый поиск показал что у них есть
многослойная система доступа и
несколько вариантов доступа, кеша и доставки
для разного вида данных.

Оказа от релейшнл основы МыСКЛ я не нашел.

Вот одна из.

http://www.insight-it.ru/masshtabiruemost/arkhitektura-facebook/ MySQL — используется как хранилище пар ключ-значение, никаких join'ов

Вот вторая, страница 10

http://www.slideshare.net/mysqlops/facebook-architecture MySQL user primarily as <key,value> store

Думаю достаточно ссылок?

Вот тут их главный инженер вещает о всей поднаготной: http://www.infoq.com/presentations/Scale-at-Facebook

на 30:25 начинается про базы данных, а на 30:50 откровение прямым текстом - только key/value store, никаких джойнов, оптимайзеров и вообще какой-либо реляционной херни, только EAV, только хардкор!

там слайдик будет справа
...
Рейтинг: 0 / 0
01.11.2014, 21:47:48
    #38793959
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
nolocky,

Ок, понятно, но они в постоянном поиске:

грамчик посвежее (214 против 2011) информация:
http://www.percona.com/blog/2014/03/27/a-conversation-with-5-facebook-mysql-gurus/

Вкратце:

1. Фейсбук все еше сильно используер
мусял в базовом -- релятивистком смысле.

2. только малая часть -- в основном важные апдейты, идут
напрямую в базу. боьшинство чтения и
временые (сессионные) апдейты идут в/из промежуточные
слои -- CDN, memcache, etc.

3. они реально улучшают кишки мыскл-а

4. Шардинг


НАсчет блобов -- это скорее как один из варинатов,
но не основной.
...
Рейтинг: 0 / 0
01.11.2014, 22:46:44
    #38794006
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
javajdbc,

именно кишки MySQL улучшить сложно, потому что, как известно, в кишках - говно.

самая главная проблема мускля как ни странно в том, что у нее много engine.
их в итоге и не много, но что их не один, им сильно мешает.
...
Рейтинг: 0 / 0
10.11.2014, 23:24:18
    #38801368
nolocky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
javajdbcnolocky,

Ок, понятно, но они в постоянном поиске:

грамчик посвежее (214 против 2011) информация:
http://www.percona.com/blog/2014/03/27/a-conversation-with-5-facebook-mysql-gurus/

Вкратце:

1. Фейсбук все еше сильно используер
мусял в базовом -- релятивистком смысле.

2. только малая часть -- в основном важные апдейты, идут
напрямую в базу. боьшинство чтения и
временые (сессионные) апдейты идут в/из промежуточные
слои -- CDN, memcache, etc.

3. они реально улучшают кишки мыскл-а

4. Шардинг


НАсчет блобов -- это скорее как один из варинатов,
но не основной.

как такая компания, как фейсбук - с их петабайтами данных, да еще и застрявшая на mysql 5.0 (сильно дописанном вручную) может в здравом уме работать в реляционной модели, если каждое банальное добавление колонки потребует тупо переписывания всего объема этих петабайт, 98% из которых - и вовсе "мертвые" данные - фоточки и коменсты более годовой давности, которые уже никогда никому не понадобятся?



кроме того, речь шла про основные сервисы фейсбука, а вот тут: http://www.percona.com/blog/2014/03/27/a-conversation-with-5-facebook-mysql-gurus/ описывается всякая мелочевка вспомогательная, компания большая, и применение имеется всякое, ктобы спорил

но меня не интересует вспомогалово, мне интересны лишь ключевые технологии.

а в вот в ключевых технологиях - тупо key-value, причем value - это именно JSONовский eblob, потому что скорость! или одним хопом достаем все, или делем сотни запросов, разницу, думаю, пояснять не нужно.

а про memcache рассказывать не надо, не интересно

Модератор: Замечание. Прошу вести диалог в более культурной форме. Общение в стилистике ПТ здесь категорически не приветствуется.
...
Рейтинг: 0 / 0
11.11.2014, 12:40:07
    #38801879
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADD COLUMN без перезаписывания всей таблицы
Вот такие есть костыли : http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
Эти костыли создают копию таблицы, триггер копирующие живые данные , и медленно и печальненько перекачивают данные. По завершению делают быстрый атомарный rename table.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ADD COLUMN без перезаписывания всей таблицы / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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