powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как происходит порядок поиска.
24 сообщений из 24, страница 1 из 1
Подскажите как происходит порядок поиска.
    #38958145
MixeYa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересует вот такой запрос:
Код: sql
1.
2.
3.
SELECT имя_столбца1, имя_столбца2
FROM имя_таблицы
WHERE имя_стобца1 'какой-то текст';



Я хочу знать, mysql сначала читает всю строку, а потом отбирает нужные столбцы в ней, или она сразу читает нужные ячейки игнорируя остальные?

Как быть если я хочу сделать очень большой двумерный массив? Стоит ли делать его в mysql, или лучше выбрать другую базу данных?
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958159
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYa,
что значит очень большой?
про индексы слышал?
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958188
MixeYa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, ну миллион на миллион, например, или больше, неважно.
Про индексирование слышал.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958216
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я хочу знать, mysql сначала читает всю строку, а потом отбирает нужные столбцы в ней, или она сразу читает нужные ячейки игнорируя остальные?


сразу читает всю строку.
невозможно прочитать отдельное поле таблицы, если это не поля специального типа данных типа Blob или подобных, или если это поле не входит в индекс (хотя это отдельная тема).

Как быть если я хочу сделать очень большой двумерный массив?


create table array (
array_id int,
row int,
col int,
value float,
primary key ( array_id, row, col )
);


Стоит ли делать его в mysql, или лучше выбрать другую базу данных?

не стоит выбирать другую СУБД, в этом смысле все СУБД одинаковы.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958230
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYa , описывайте цель, а не свои попытки её решения. Для показанного запроса при определённых условиях сервер вообще не будет обращаться к таблице данных.

PS. В терминах SQL в принципе нет понятия массива.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958245
MixeYa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,
Спасибо, это очень полезный ответ, именно такой я и ждал. Теперь многое проясняется.


Akina,
Я только пытаюсь понять как они работают, поэтому с вопросами тоже проблема. К тому же на форумах иногда ругаются на тех, кто глупые вопросы задаёт.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958264
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYaЯ только пытаюсь понять как они работают
Бессмысленно пытаться понимать, КАК что-то делается, если не понимаешь, ЧТО ИМЕННО при этом делается. Вот с чего надо было бы начать.

MixeYaЯ хочу знать, mysql сначала читает всю строку, а потом отбирает нужные столбцы в ней, или она сразу читает нужные ячейки игнорируя остальные?
Задача MySQL (основная!) - это не просто получить результат, а сделать это максимально эффективным в каждом конкретном случае способом. Для решения у сервера есть несколько разных методов, у каждого из них имеется несколько вариаций. На основании сведений о структуре хранения, текущем наполнении и его статистике сервер выберет один из, который в данном конкретном случае по его мнению самый эффективный. И вовсе не факт, что завтра при выполнении того же самого запроса сервер выберет тот же самый метод получения результата.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958289
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYaвадя, ну миллион на миллион, например, или больше, неважно.
Про индексирование слышал.
если "миллион на миллион" понимать как мильон строк на мильон столбцов - то это уже не понятно что ты хочешь.
мильон строк это не проблема, а вот мильон столбцов - это ещё надо поискать такие базы.

авторописывайте цель, а не свои попытки её решения. Для показанного запроса при определённых условиях сервер вообще не будет обращаться к таблице данных.

присоединяюсь, иначе пустое сотресение клавиш
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958449
MixeYa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну раз уж вам так интересно, то опишу почему такой вопрос появился.

Дело в том, что стал изучать джанго, а джанго при создании запроса к базе получает строку целиком, в виде объекта. Поэтому создать запрос аналогичный тому который я написал, способа не нашёл, только через отдельный метод, который возвращает словарь.
Поэтому и возникло подозрение, что выборка осуществляется уже после того как будет считана вся строка. Ну и соответственно возник вопрос про массивы, ведь можно реализовать двумерный массив как пересечение строк и столбцов. MasterZiv, реально закрыл все возникшие вопросы :)
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958496
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYaджанго при создании запроса к базе получает строку целиком, в виде объекта.Сказки. Во-первых, не строку, а запись (разница есть, поверь). Во-вторых, не целиком, а только поля, указанные в выходном наборе. В третьих, объект из записи делает уже сам твой софт или какие-то компоненты под ним (впрочем, с формальной точки зрения уже драйвер доступа к БД преолбразует полученный от сервера ответ в объект).

MixeYaведь можно реализовать двумерный массив как пересечение строк и столбцов. MasterZiv, реально закрыл все возникшие вопросы :)
Данные в БД однозначно (пусть и с кучей оговорок) хранятся как одномерные массивы, без вариантов. Реализация многомерности - всегда искусственное мероприятие, независимо от того, что для этого используется, тупая эмуляция PIVOT или, скажем, OLAP-надстройка...
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958507
MixeYa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, я так понимаю, что данные в бд хранятся как множества.
Но ты меня немного запутал. Какая разница между записью и строкой таблицы?
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958512
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запись - это единица ХРАНЕНИЯ.
Строка - это единица ОТОБРАЖЕНИЯ.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958518
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYaя так понимаю, что данные в бд хранятся как множества.Хуже. Данные в БД хранятся как куча. То есть у записей даже порядка хранения - и того нет, всё навалом. И дважды подряд выполненный на одних и тех же данных запрос, не имеющий в тексте инструкций сортировки (явной или неявной) может вернуть хоть и один и тот же набор записей, но в различающемся порядке.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958601
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсразу читает всю строку.
не так. читает всю страницу, потом находит в ней нужную строку.

авторХуже. Данные в БД хранятся как куча.
в InnoDB это не так. данные там всегда упорядоченны по первичному ключю (иногда неявному)
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958609
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторХуже. Данные в БД хранятся как куча.
в InnoDB это не так. данные там всегда упорядоченны по первичному ключю (иногда неявному)Не "всегда". Упорядочены в пределах страницы/блока и упорядочены в списке блоков таблицы. Но не всегда упорядочены в файле/на диске.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958655
MixeYa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
множество не может быть упорядоченным. Это уже алгоритмы сортировки результатов работают.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958658
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYaмножество не может быть упорядоченным. Это уже алгоритмы сортировки результатов работают.
чего?
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958669
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixeYaмножество не может быть упорядоченным.Да ну? https://ru.wikipedia.org/wiki/Множество Частично упорядоченное множество, вполне упорядоченное множество — множество, на котором задано отношение порядка.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958674
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется тс-у полезнее было бы разобраться с джанговскими моделями
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958807
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivсразу читает всю строку.
невозможно прочитать отдельное поле таблицы, если это не поля специального типа данных типа Blob или подобных, или если это поле не входит в индекс (хотя это отдельная тема).
Заголовок записи в MyISAM содержит позицию начала каждого поля. Учитывая возможный уровень дефрагментации, когда поле может быть раскидано по разным частям диска, чтения всей строки явно не будет.

Правильный ответ на вопрос ТС: может быть да, а может и нет :)
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958856
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
retvizanMasterZivсразу читает всю строку.
невозможно прочитать отдельное поле таблицы, если это не поля специального типа данных типа Blob или подобных, или если это поле не входит в индекс (хотя это отдельная тема).
Заголовок записи в MyISAM содержит позицию начала каждого поля. Учитывая возможный уровень дефрагментации, когда поле может быть раскидано по разным частям диска, чтения всей строки явно не будет.

Правильный ответ на вопрос ТС: может быть да, а может и нет :)

правильный ответ - читается страницами.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958973
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMixeYaвадя, ну миллион на миллион, например, или больше, неважно.
Про индексирование слышал.
если "миллион на миллион" понимать как мильон строк на мильон столбцов - то это уже не понятно что ты хочешь.
мильон строк это не проблема, а вот мильон столбцов - это ещё надо поискать такие базы.

Тут вопрос не в количестве.
Даже 10 столбцов в любой реляционной СУБД нельзя хранить.
Потому что РСУБД не хранит столбцы и строки. Она хранить записи и поля записей.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38958977
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowretvizanпропущено...

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

Правильный ответ на вопрос ТС: может быть да, а может и нет :)

правильный ответ - читается страницами.

Он-то не про это спрашивал, а можно ли будет избежать чтения (и записи) ненужных в данный момент обработки полей.
Нет, нельзя.
...
Рейтинг: 0 / 0
Подскажите как происходит порядок поиска.
    #38959007
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТут вопрос не в количестве.
Даже 10 столбцов в любой реляционной СУБД нельзя хранить.
Потому что РСУБД не хранит столбцы и строки. Она хранить записи и поля записей.
ну меня то в этом убеждать не стоит :)
я попытался разговаривать на языке ТС
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как происходит порядок поиска.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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