[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Первичные ключи в таблице
Susik
Интересует ваше мнение о первичных ключах в таблице. Почти всегда есть необходимость в столбце с первичным ключом (Авто_инкрементом). Поэтому указываю всегда и не особо парусь по этому поводу. Но последнее время работаю с БД в которых нет первичного ключа и его присутствие не требуется. И мне стало интересно.


Есть таблица без первичного ключа
В базе есть несколько не уникальных индексов по разным столбцам

Как MySQL находит взаимосвязь между индексами и основной таблицей если в ней нет первичного ключа?
Может в таблице есть какой то внутренний счетчик строк?
Стоит ли всегда использовать PRIMARY KEY?



P.S. К таблице в которой миллиард записей и всего два столбца по 1 - 6 знаку в каждом столбцу добавление первичного ключа 1-1.000.000.000 многократно увеличит объем таблицы.

_____________
Ramzil_Nixon
Цитата (Susik @ 3.02.2019 - 12:50)
Стоит ли всегда использовать PRIMARY KEY?


Я всегда использую.

_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Michael
Цитата (Susik @ 3.02.2019 - 11:50)
Как MySQL находит взаимосвязь между индексами и основной таблицей если в ней нет первичного ключа?
Может в таблице есть какой то внутренний счетчик строк?

Да, у строк есть какие нибудь внутренние указатели, на которые любой индекс и указывает

_____________
There never was a struggle in the soul of a good man that was not hard
sergeiss
Цитата (Susik @ 3.02.2019 - 13:50)
P.S. К таблице в которой миллиард записей и всего два столбца по 1 - 6 знаку в каждом столбцу добавление первичного ключа 1-1.000.000.000 многократно увеличит объем таблицы.

Если в таблице миллиард записей, то она однозначно должна состоять из партиций. Ну это так, "к слову"....

Цитата (Susik @ 3.02.2019 - 13:50)
Как MySQL находит взаимосвязь между индексами и основной таблицей если в ней нет первичного ключа?

https://habr.com/ru/company/southbridge/blog/322624/ почитай на хабре интересную статью. Только сразу хочу предостеречь smile.gif Обращай внимание в первую очередь на описание алгоритмов работы индексов. А вот сама идея (и обоснование) перехода с Постгре на Мускуль, сделанного в конкретном случае, были жОстко "откамменчены" под этой же статьёй. Если кратко, то суть каментов сводится к тому, что "Убер не умеет готовить Постгре".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Valick
Я уже приводил пример, в своих лирических отступлениях, сравнения Мерседес с "инвалидкой". В данном случае в роли Мерса выступает MySQL, а вот PostgreSQL - это таки Майбах.
Читать или не читать "обоснование", вот в чём вопрос.

_____________
Стимулятор ~yoomoney - 41001303250491
Susik
sergeiss Спасибо за статью. Прочитал. Я сижу на MySQL. Хотел попробовать PostgreSQL, но не смог подключится к базам в pgAdmin user posted image . Поэтому забил. smile.gif

В общем пришел к выводу: В 95 случает без первичного ключа не обойтись, а в остальных случаях тоже создаем первичный ключ, ды ба мы ничего не теряем кроме крапульки места на диске.

_____________
twin
Хорошее сравнение мерседеса и майбуха biggrin.gif
Это как придешь на работу устраиваться водителем и скажешь: да я на майбухе ездил, вот какой я крутой! А тебе - ну и что... у нас в гараже одни мерседесы.

Постгре шикарная весчь, но у неё один минус - низкая популярность. Если нашел работу на майбухе - это круть. Но не так уж много этих майбухов пока что)))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.