Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Глобальный AUTO_INCREMENT

563
26 февраля 2009 года
MrLinker
249 / / 17.09.2006
Ребятушки, Вы все такие хорошие ребятушки!
Не подскажите, как сделать счетчик глобальным для всей БД?
Без полей-счетчиков догадываюсь как.
Там я, это, ну в MySQL реально задвигаю.

P.S. У меня глюки, или мои сообщения бесследно исчезают с этого форума и улетают медитировать над южными краторами луны?
13
26 февраля 2009 года
RussianSpy
3.0K / / 04.07.2006
Что значит "глобальным"?
563
26 февраля 2009 года
MrLinker
249 / / 17.09.2006
Это когда нет в базе таблиц с пересекающимися идентификаторами записей.
Тьфу, млин, не понимаю как это объяснить ;)
13
26 февраля 2009 года
RussianSpy
3.0K / / 04.07.2006
Зачем такое нужно?
Вообще если такое потребовалось - это говорит о неверном проектировании структуры БД
563
26 февраля 2009 года
MrLinker
249 / / 17.09.2006
Цитата:
Вообще если такое потребовалось - это говорит о неверном проектировании структуры БД


Осмелюсь спросить, почему?

13
26 февраля 2009 года
RussianSpy
3.0K / / 04.07.2006
Потому что такое может потребоваться только в очень-очень редких и особых случаях. Готов поспорить на 1 млн евро что у вас точно не он.

Опишите подробнее проблему. Тогда смогу точнее сказать как лучше поступить.
563
26 февраля 2009 года
MrLinker
249 / / 17.09.2006
Я уже описал проблему.
Вы действительно готовы спорить со мной на 1 млн. евро?

В моей практике было несколько случаев, когда одна таблица разбивалась на несколько десятков по некоторому признаку. Благодаря такому разбиению я получал выигрыш в производительности.
Вы бы, видимо, первое что по такому поводу сказали:
"если такое потребовалось - это говорит о неверном проектировании структуры БД".

Просто скажите мне, есть такая возможность или нет?
13
26 февраля 2009 года
RussianSpy
3.0K / / 04.07.2006
Да я готов поспорить.

Выигрыш в производительности? У вас десятки миллионов записей? А индексы назначены?

Навскидку вижу как минимум два варианта:

1) Создать отдельную таблицу и хранить там ID
2) Триггеры

Знал бы проблему детальней - посоветовал бы что-то еще.
563
26 февраля 2009 года
MrLinker
249 / / 17.09.2006
Цитата:
Выигрыш в производительности?


Да, выигрыш в производительности.

Цитата:
У вас десятки миллионов записей?


Нет, миллион.

Мне нужно манипулировать некоторым объемом данных в едином контексте вне зависимости от их сущности и структуры БД.
Поэтому мне нужны уникальные идентификаторы для всех записей в базе.

Когда-то я читал об этом, не помню где.

Т.е. правильно я понял, что настроить AUTO_INCREMENT так, как мне надо в MySQL нельзя?

P.S. В Microsoft SQL Server такая возможность есть

13
26 февраля 2009 года
RussianSpy
3.0K / / 04.07.2006
Насколько мне известно нет.

Однако стоит подождать ответов других участников форума.


ЗЫ Все равно не верю, что вам требуется такое извращение. И кстати про индексы вы не ответили
13
26 февраля 2009 года
RussianSpy
3.0K / / 04.07.2006
Цитата: MrLinker
P.S. В Microsoft SQL Server такая возможность есть



Не стоит сравнивать убогую недоСУБД MySQL с взрослой полновесной штукой под названием MS SQL Server 2005/2008.

563
26 февраля 2009 года
MrLinker
249 / / 17.09.2006
Это я к тому, что такая возможность предусмотрена и вполне обосновано. Иногда необходмо иметь гарантировано уникальную запись в БД или на нескольких серверах (чтобы полученные id на разных серверах не пересекались).

Цитата:
недоСУБД MySQL


Радуюсь тем, что имею :D

P.S. Не во всех случаях индексация эффективна.

P.P.S. И все-таки куда улетучиваются мои сообщения?

5
26 февраля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: MrLinker
Мне нужно манипулировать некоторым объемом данных в едином контексте вне зависимости от их сущности и структуры БД.
Поэтому мне нужны уникальные идентификаторы для всех записей в базе.

В Oracle можно было бы использовать последовательности (sequence). В MSSQL я пользуюсь GUID-ами (uniqueidentifier).

285
26 февраля 2009 года
Romik
479 / / 24.11.2002
Глобальный счётчик вполне себе обоснованое требование. Описание рецепта глобального счётчика есть в книга Мартина Фаулера "Архитектура корпоративных программных приложений", глава 12. Поле идентификации (Identify Field), стр.: 238-248.
563
26 февраля 2009 года
MrLinker
249 / / 17.09.2006
Спасибо, книженцию закачал, читаю.
В MySQL есть uuid(). Осмысливаю.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог