|
|
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
Интересует вот такой запрос: Код: sql 1. 2. 3. Я хочу знать, mysql сначала читает всю строку, а потом отбирает нужные столбцы в ней, или она сразу читает нужные ячейки игнорируя остальные? Как быть если я хочу сделать очень большой двумерный массив? Стоит ли делать его в mysql, или лучше выбрать другую базу данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 07:02:52 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYa, что значит очень большой? про индексы слышал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 07:55:23 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
вадя, ну миллион на миллион, например, или больше, неважно. Про индексирование слышал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 08:46:45 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
Я хочу знать, mysql сначала читает всю строку, а потом отбирает нужные столбцы в ней, или она сразу читает нужные ячейки игнорируя остальные? сразу читает всю строку. невозможно прочитать отдельное поле таблицы, если это не поля специального типа данных типа Blob или подобных, или если это поле не входит в индекс (хотя это отдельная тема). Как быть если я хочу сделать очень большой двумерный массив? create table array ( array_id int, row int, col int, value float, primary key ( array_id, row, col ) ); Стоит ли делать его в mysql, или лучше выбрать другую базу данных? не стоит выбирать другую СУБД, в этом смысле все СУБД одинаковы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:11:42 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYa , описывайте цель, а не свои попытки её решения. Для показанного запроса при определённых условиях сервер вообще не будет обращаться к таблице данных. PS. В терминах SQL в принципе нет понятия массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:17:27 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Спасибо, это очень полезный ответ, именно такой я и ждал. Теперь многое проясняется. Akina, Я только пытаюсь понять как они работают, поэтому с вопросами тоже проблема. К тому же на форумах иногда ругаются на тех, кто глупые вопросы задаёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:33:20 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYaЯ только пытаюсь понять как они работают Бессмысленно пытаться понимать, КАК что-то делается, если не понимаешь, ЧТО ИМЕННО при этом делается. Вот с чего надо было бы начать. MixeYaЯ хочу знать, mysql сначала читает всю строку, а потом отбирает нужные столбцы в ней, или она сразу читает нужные ячейки игнорируя остальные? Задача MySQL (основная!) - это не просто получить результат, а сделать это максимально эффективным в каждом конкретном случае способом. Для решения у сервера есть несколько разных методов, у каждого из них имеется несколько вариаций. На основании сведений о структуре хранения, текущем наполнении и его статистике сервер выберет один из, который в данном конкретном случае по его мнению самый эффективный. И вовсе не факт, что завтра при выполнении того же самого запроса сервер выберет тот же самый метод получения результата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 09:42:54 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYaвадя, ну миллион на миллион, например, или больше, неважно. Про индексирование слышал. если "миллион на миллион" понимать как мильон строк на мильон столбцов - то это уже не понятно что ты хочешь. мильон строк это не проблема, а вот мильон столбцов - это ещё надо поискать такие базы. авторописывайте цель, а не свои попытки её решения. Для показанного запроса при определённых условиях сервер вообще не будет обращаться к таблице данных. присоединяюсь, иначе пустое сотресение клавиш ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 10:00:04 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
Ну раз уж вам так интересно, то опишу почему такой вопрос появился. Дело в том, что стал изучать джанго, а джанго при создании запроса к базе получает строку целиком, в виде объекта. Поэтому создать запрос аналогичный тому который я написал, способа не нашёл, только через отдельный метод, который возвращает словарь. Поэтому и возникло подозрение, что выборка осуществляется уже после того как будет считана вся строка. Ну и соответственно возник вопрос про массивы, ведь можно реализовать двумерный массив как пересечение строк и столбцов. MasterZiv, реально закрыл все возникшие вопросы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 11:54:12 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYaджанго при создании запроса к базе получает строку целиком, в виде объекта.Сказки. Во-первых, не строку, а запись (разница есть, поверь). Во-вторых, не целиком, а только поля, указанные в выходном наборе. В третьих, объект из записи делает уже сам твой софт или какие-то компоненты под ним (впрочем, с формальной точки зрения уже драйвер доступа к БД преолбразует полученный от сервера ответ в объект). MixeYaведь можно реализовать двумерный массив как пересечение строк и столбцов. MasterZiv, реально закрыл все возникшие вопросы :) Данные в БД однозначно (пусть и с кучей оговорок) хранятся как одномерные массивы, без вариантов. Реализация многомерности - всегда искусственное мероприятие, независимо от того, что для этого используется, тупая эмуляция PIVOT или, скажем, OLAP-надстройка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 12:29:23 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
Akina, я так понимаю, что данные в бд хранятся как множества. Но ты меня немного запутал. Какая разница между записью и строкой таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 12:34:36 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
Запись - это единица ХРАНЕНИЯ. Строка - это единица ОТОБРАЖЕНИЯ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 12:37:09 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYaя так понимаю, что данные в бд хранятся как множества.Хуже. Данные в БД хранятся как куча. То есть у записей даже порядка хранения - и того нет, всё навалом. И дважды подряд выполненный на одних и тех же данных запрос, не имеющий в тексте инструкций сортировки (явной или неявной) может вернуть хоть и один и тот же набор записей, но в различающемся порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 12:39:54 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
авторсразу читает всю строку. не так. читает всю страницу, потом находит в ней нужную строку. авторХуже. Данные в БД хранятся как куча. в InnoDB это не так. данные там всегда упорядоченны по первичному ключю (иногда неявному) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:32:24 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторХуже. Данные в БД хранятся как куча. в InnoDB это не так. данные там всегда упорядоченны по первичному ключю (иногда неявному)Не "всегда". Упорядочены в пределах страницы/блока и упорядочены в списке блоков таблицы. Но не всегда упорядочены в файле/на диске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:38:14 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
множество не может быть упорядоченным. Это уже алгоритмы сортировки результатов работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 13:59:51 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYaмножество не может быть упорядоченным. Это уже алгоритмы сортировки результатов работают. чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 14:01:01 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MixeYaмножество не может быть упорядоченным.Да ну? https://ru.wikipedia.org/wiki/Множество Частично упорядоченное множество, вполне упорядоченное множество — множество, на котором задано отношение порядка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 14:04:46 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
мне кажется тс-у полезнее было бы разобраться с джанговскими моделями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 14:06:44 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
MasterZivсразу читает всю строку. невозможно прочитать отдельное поле таблицы, если это не поля специального типа данных типа Blob или подобных, или если это поле не входит в индекс (хотя это отдельная тема). Заголовок записи в MyISAM содержит позицию начала каждого поля. Учитывая возможный уровень дефрагментации, когда поле может быть раскидано по разным частям диска, чтения всей строки явно не будет. Правильный ответ на вопрос ТС: может быть да, а может и нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 15:13:57 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
retvizanMasterZivсразу читает всю строку. невозможно прочитать отдельное поле таблицы, если это не поля специального типа данных типа Blob или подобных, или если это поле не входит в индекс (хотя это отдельная тема). Заголовок записи в MyISAM содержит позицию начала каждого поля. Учитывая возможный уровень дефрагментации, когда поле может быть раскидано по разным частям диска, чтения всей строки явно не будет. Правильный ответ на вопрос ТС: может быть да, а может и нет :) правильный ответ - читается страницами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 15:38:20 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
вадяMixeYaвадя, ну миллион на миллион, например, или больше, неважно. Про индексирование слышал. если "миллион на миллион" понимать как мильон строк на мильон столбцов - то это уже не понятно что ты хочешь. мильон строк это не проблема, а вот мильон столбцов - это ещё надо поискать такие базы. Тут вопрос не в количестве. Даже 10 столбцов в любой реляционной СУБД нельзя хранить. Потому что РСУБД не хранит столбцы и строки. Она хранить записи и поля записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:04:55 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
ScareCrowretvizanпропущено... Заголовок записи в MyISAM содержит позицию начала каждого поля. Учитывая возможный уровень дефрагментации, когда поле может быть раскидано по разным частям диска, чтения всей строки явно не будет. Правильный ответ на вопрос ТС: может быть да, а может и нет :) правильный ответ - читается страницами. Он-то не про это спрашивал, а можно ли будет избежать чтения (и записи) ненужных в данный момент обработки полей. Нет, нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:08:04 |
|
||
|
Подскажите как происходит порядок поиска.
|
|||
|---|---|---|---|
|
#18+
авторТут вопрос не в количестве. Даже 10 столбцов в любой реляционной СУБД нельзя хранить. Потому что РСУБД не хранит столбцы и строки. Она хранить записи и поля записей. ну меня то в этом убеждать не стоит :) я попытался разговаривать на языке ТС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:24:04 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38958609&tid=1833201]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 341ms |

| 0 / 0 |
