powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Планирование индексного для БД, вопрос новичка
25 сообщений из 31, страница 1 из 2
Планирование индексного для БД, вопрос новичка
    #38764493
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Не знаю даже как загуглить такой глупый вопрос, но в той книженции что у меня есть я ответа на него не нашел.

Я новичок, и вопрос соответсвенный: как нужно планировать индексы ??

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

Ясоздаю справочник по типу: id, figura. где поле id = UNSIGNED TINYINT. ведь 255 записей мне по идее должно хватить на все про все.

и чтобы пользователь не вводил ID, ведь он даже не представляет что это, я делаю автоинкремент.

Но автоинкремент работает так что если я удалил из 1-2-3-4-5 запись 4, то автоинкремент добавит следующую позицию 6.

Сам вопрос:
1) возможно как то реализовать средствами SQL лучше проверку на пустй автоинкремент?? или
2) проверка осуществляется средствами языка разработки, без использования типа АВТОИНКРЕМЕНТ ??
3)есть ли ссылка на мануал , ка кправильно реализовывать такие маленькие справочники, т.к. я даже не могу сформулировать сам этот вопрос.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764636
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKНо автоинкремент работает так что если я удалил из 1-2-3-4-5 запись 4, то автоинкремент добавит следующую позицию 6.ну и что? какая, в сущности, разница?
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764643
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разница в том что список, ограниченный форматом омжет закончится. А использовать формат который занимает больше места в памяти:
1) я так понимаю не очень хорошо
2) он тоже когда то закончится.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764648
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKА использовать формат который занимает больше места в памяти:
1) я так понимаю не очень хорошо
2) он тоже когда то закончится.
1) Плохо понимаешь
2) Ты умрёшь раньше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764680
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел подобное обьяснение через два часа гугления: ссылка

По поводу размерности: нас что в ВУЗе, что я от другоих слышал: стараться уменьшать тип данных, т.к. от этого зависит размер и скорость обработки таблицы. Ну это уже дргой вопрос.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764718
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKчто в ВУЗе, что я от другоих слышал: стараться уменьшать тип данных, т.к.
от этого зависит размер и скорость обработки таблицы.
В вашем ВУЗе, очевидно, ещё не знают, что на дворе 21-й век и использование типов данных с
размером меньше 32-х бит только уменьшает скорость обработки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764742
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Да, вы правы, меня учили именно так, к сожалению о таком я слышу впервые, и буду иметь ввиду.

Так же был бы Вам очень благодарен если бы вы привели какую то ссылку на рекомендации чтоб я мог ознакомиться и обновить свои знания в соответсвии со стандартами 21 века
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764779
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov1) Плохо понимаешь
2) Ты умрёшь раньше.



JesterOKТак же был бы Вам очень благодарен если бы вы привели какую то ссылку на рекомендации чтоб я мог ознакомиться и обновить свои знания в соответсвии со стандартами 21 века

Делайте обычные счетчики с вашим "автоинкрементом" и не парьтесь, кажись максимальное значение под 100
миллиардов будет...
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38764780
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погуглите на тему "архитектура 32-х разрядных процессоров и их взаимодействие с
оперативной памятью".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765013
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov....и их взаимодействие с оперативной памятью".

А с диском?
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765016
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
note: хотя по факту - экономить единицы байт сейчас очень глупо. Разумеется есть задачи, где это может дать какой-то эффект. Но в 99.99% случаев - нефиг париться по пустякам.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765074
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevDimitry Sibiryakov....и их взаимодействие с оперативной памятью".

А с диском?
С диска читается все равно страница целиком - т.е. единственный кейс, когда от уменьшения размера ключа на 3 байта может быть выигрыш - когда те обьекты, которые раньше лежали на двух и более страницах, умещаются на одну.
Для простенького справочника из 256 элементов максимум - не очень вероятный случай.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765091
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кейс это когда в блоке будет лежать в N-раз больше записей и соответственно обмен с диском будет в N-раз быстрее.

Но, например, Oracle вроде хранит числа в своем, внутреннем формате. Т.ч. для Oracle разницы все равно не будет ))) Для каких либо старых БД - х.з.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765445
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинС диска читается все равно страница целиком - т.е. единственный кейс, когда от уменьшения размера ключа на 3 байта может быть выигрыш - когда те обьекты, которые раньше лежали на двух и более страницах, умещаются на одну.
Для простенького справочника из 256 элементов максимум - не очень вероятный случай.Экономия не на справочнике, а в таблицах, которые его используют.

Огромная таблица фактов может содержать только ссылки на справочники, и вышеописанный подход "экономии на типах" может уменьшить многотерабайтное хранилище в пару раз.
JesterOKЯ новичок, и вопрос соответсвенный: как нужно планировать индексы ??Ну, индексы в этом вопросе вообще ни при чём :-)
JesterOKЯсоздаю справочник по типу: id, figura. где поле id = UNSIGNED TINYINT. ведь 255 записей мне по идее должно хватить на все про все.

и чтобы пользователь не вводил ID, ведь он даже не представляет что это, я делаю автоинкремент.

Но автоинкремент работает так что если я удалил из 1-2-3-4-5 запись 4, то автоинкремент добавит следующую позицию 6.Пользователи обычно такими справочниками не управляют, это делают программисты, либо администраторы данных. Так что лучше отказаться от автоинкремента и управлять идентификаторами самому. Это, конечно, зависит от справочников, но для маленьких правочников получается обычно так.
JesterOKНо автоинкремент работает так что если я удалил из 1-2-3-4-5 запись 4, то автоинкремент добавит следующую позицию 6.И, наконец, главный вопрос - а как, собственно, планируется удалять значения из справочника? А ссылок на них не было? А в исторических данных, в старых отчётах?
Удаление из справочника - это вообще большая редкость, обычно так не делают при проектировании модели данных.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765627
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgКот МатроскинС диска читается все равно страница целиком - т.е. единственный кейс, когда от уменьшения размера ключа на 3 байта может быть выигрыш - когда те обьекты, которые раньше лежали на двух и более страницах, умещаются на одну.
Для простенького справочника из 256 элементов максимум - не очень вероятный случай.Экономия не на справочнике, а в таблицах, которые его используют.

Огромная таблица фактов может содержать только ссылки на справочники, и вышеописанный подход "экономии на типах" может уменьшить многотерабайтное хранилище в пару раз.

Только ссылки на справочники из 256 элементов? ;) Как-то не очень вероятно имхо.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765671
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинТолько ссылки на справочники из 256 элементов? ;) Как-то не очень вероятно имхо.

Ну почему так ? Например справочник ответов из 4 - х элементов:
- Да
- Нет
- ХЗ
- Иди нах
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765741
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagКот МатроскинТолько ссылки на справочники из 256 элементов? ;) Как-то не очень вероятно имхо.

Ну почему так ? Например справочник ответов из 4 - х элементов:
- Да
- Нет
- ХЗ
- Иди нах
Матроскин не про это.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765933
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И, наконец, главный вопрос - а как, собственно, планируется удалять значения из справочника? А ссылок на них не было? А в исторических данных, в старых отчётах?
Удаление из справочника - это вообще большая редкость, обычно так не делают при проектировании модели данных.

Планируется БД для спортивной школы, этот маленький справочник входит в аткую структуру: ВИД СПОРТА -> ТРенер -> Группа -> Учащиеся.

Дальше будет обработка результатов, но это уже дргуой ворпос. Именно на примере маленького справочника ВИД СПОРТА я это и рассматриваю. по идее - его добавят для школы один раз и все.

Вопрос на самом деле интересный, но по ссылку выше сказано - если СУБД MySQL видит переполнение автоинкремента, то она ищет среди доступных номеров в этом диапазоне. я не думаю что там будет больше 10 видов спорта. НО ведь это мой единичный случай.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38765983
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKНО ведь это мой единичный случай.Грамотные коммерческие проекты имеют фазу анализа того, что нужно сделать сейчас (какие данные, какого размера положить в базу и как с ними работать) и что будет через год.
И на основе этого выбирается архитектура.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38766781
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKРазница в том что список, ограниченный форматом омжет закончится. А использовать формат который занимает больше места в памяти:
1) я так понимаю не очень хорошо
2) он тоже когда то закончится.

все когда то закончится....
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38766783
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKНашел подобное обьяснение через два часа гугления: ссылка

По поводу размерности: нас что в ВУЗе, что я от другоих слышал: стараться уменьшать тип данных, т.к. от этого зависит размер и скорость обработки таблицы. Ну это уже дргой вопрос.

зависит скорость от размера очень незначительно.
ты ведь не на порядок размер увеличиваешь, не в 10-100-1000раз, а на байт или максимум в 2 раза.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38766994
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevnote: хотя по факту - экономить единицы байт сейчас очень глупо.
Экономить единицы байт довольно трудно. Я однажды на спор с одним DBA уложил в 98 байт средней длины строки некоторые данные, которые по его мнению, требовали не менее двухсот. Что это значит в промышленных масштабах... ну например, это значит, что на сервере волшебным образом стало вдвое больше оперативки и вдвое быстрее обмен с дисками...
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38767682
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинalexeyvgпропущено...
Экономия не на справочнике, а в таблицах, которые его используют.

Огромная таблица фактов может содержать только ссылки на справочники, и вышеописанный подход "экономии на типах" может уменьшить многотерабайтное хранилище в пару раз.

Только ссылки на справочники из 256 элементов? ;) Как-то не очень вероятно имхо.Ну я обобщённо говорю, вообще про необходимость учёта размера хранения при выборе типа для некоторых случаев.

Допустим, была таблица фактов - пара полей-ссылок типа INT, поле datetime, поле NUMERIC(38)
То есть 4+4+8+17 = 33 байт
Сделали пару полей-ссылок типа TINYINT, SMALLINT, поле INT (ссылка на календарь, ну или тип SMALLINT, тоже 4 байта), поле real
Получилось 1+2+4+4 = 12 байт
Почти в три раза, было хранилище к примеру 100 террабайт, стало 40, экономия.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38767685
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgДопустим, была таблица фактов - пара полей-ссылок типа INT, поле datetime, поле NUMERIC(38)
То есть 4+4+8+17 = 33 байт
Сделали пару полей-ссылок типа TINYINT, SMALLINT, поле INT (ссылка на календарь, ну или тип SMALLINT, тоже 4 байта), поле real
Получилось 1+2+4+4 = 12 байт
Почти в три раза, было хранилище к примеру 100 террабайт, стало 40, экономия.Ой, получилось 11 байт, экономия в 3 раза.
...
Рейтинг: 0 / 0
Планирование индексного для БД, вопрос новичка
    #38767720
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgПолучилось 1+2+4+4 = 12 байт
Почти в три раза, было хранилище к примеру 100 террабайт, стало 40, экономия.
На какой СУБД?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Планирование индексного для БД, вопрос новичка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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