Здравствуйте, стало очень интересно, как работают большие проекты с большим объемом информации. Представил себе задачку, есть журнал оценок учеников. Для этих оценок есть таблица, где хранится id ученика, предмет, оценка, дата. В каждой строке - новая оценка, какого-то ученика. В таком случае пусть в классе 30 учеников, умножаем на 250 рабочих дней, умножаем на 11 предметов, имеем 82 500 записей, для одного класса. Это нормально, или такие дела как-то по другому хранятся ?
Valick
17.06.2013 - 23:02
а, ну тогда спасибо, думал это много )
Valick
17.06.2013 - 23:33
wollk, даже десять раз по столько, это далеко не много
_____________
Стимулятор ~yoomoney - 41001303250491
glock18
17.06.2013 - 23:50
wollk
если вас беспокоит кол-во возможных записей через несколько лет, то можете под каждый год отдельную таблицу заводить. Школьные дела под такое разбиение очень легко ложатся. А теоретические 2 с небольшим миллиона записей при 30 классах совсем уж ерунда, если все поля численные (полагая что и предмет тоже) и правильно проиндексированные. В этом случае можно идти на значительно бОльшие объемы (до миллиарда и даже дальше, пожалуй), не испытывая серьезных проблем с производительностью.
Valick
17.06.2013 - 23:54
Цитата |
то можете под каждый год отдельную таблицу заводить |
ну обычно вся инфа уходит в архив, таблица которого не обязательно должна быть копией рабочей таблицы, и может быть сильно денормализована.
___
кстати
wollk, учите законы нормализации таблиц БД, это поможет правильно организовывать структуру и сязи таблиц БД.
в данном случае (про оценки) должно быть минимум три таблицы
_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
18.06.2013 - 00:06
Все всё правильно сказали, только умное слово "партиции" не сказали. Это как раз логическое разбиение таблиц на части. В примере со школьным журналом очень удобно дробить по четвертям, либо отдельно для каждого класса на целый год. Тогда каждый кусочек будет небольшой. И всё будет просто летать.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Может я и не правильно мыслю, но я думал с большими объемами данных будут работать с помощью хеширования и оптимизацией работы с MySQL(запросы, структура БД и т.д.)
Цитата (sergeiss @ 17.06.2013 - 20:06) |
Все всё правильно сказали, только умное слово "партиции" не сказали. Это как раз логическое разбиение таблиц на части. В примере со школьным журналом очень удобно дробить по четвертям, либо отдельно для каждого класса на целый год. Тогда каждый кусочек будет небольшой. И всё будет просто летать. |
Всем большое спасибо, очень познавательно ! Расскажите пожалуйста подробнее про "партиции", не очень понял.
sergeiss
18.06.2013 - 08:47
Насчет партиций: "гуглю за ваш счет" (с)
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 18.06.2013 - 04:47) |
Насчет партиций: "гуглю за ваш счет" (с) |
Спасибо, нашёл. (просто не удобно с телефона искать информаиию в интернете, вот и спросил не по гуглив)
Ребята, а как быть с ID, их кк бы можно вообще не использовать в данном случае с оценками, ведь есть дата, ученик, предмет. А если использовать, то может лучше генерировать численно-символьные ID, или миллиардные числа это тоже нормально ?
glock18
18.06.2013 - 13:19
Цитата (wollk @ 18.06.2013 - 09:11) |
А если использовать, то может лучше генерировать численно-символьные ID, или миллиардные числа это тоже нормально ? |
миллиардные числа гораздо более нормальны, чем численно-символьные ID
Цитата (glock18 @ 18.06.2013 - 09:19) |
Цитата (wollk @ 18.06.2013 - 09:11) | А если использовать, то может лучше генерировать численно-символьные ID, или миллиардные числа это тоже нормально ? |
миллиардные числа гораздо более нормальны, чем численно-символьные ID
|
Т.е. принцип чем короче, тем проще запомнить работает только для человека. Ну в принципе да, ведь число проще перевести в двоичный код. Спасибо !
sergeiss
18.06.2013 - 14:36
Их не надо переводить в двоичные чмсла... В компе они и так в двоичном виде хранятся.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 18.06.2013 - 10:36) |
Их не надо переводить в двоичные чмсла... В компе они и так в двоичном виде хранятся. |
Эм.. я знаю, я просто говорю... Ведь компьютеру тоже надо переводить инфу в двоичный код, ладно.. не важно. Я просто теоретически подумал, что проще циферки перевести, чем слова кодировать....
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.