Взять строку с базы данных

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43
Всем привет.Начал работать с базами данных.Есть таблица в ней около 100к строк,мне нужно получить строку например 99999,обычный селект как я понял сначала скачивает всю таблицу потом уже ищет и берет по номеру.Можно ли как то ускорить это действие?И вообще возможно ли брать из базы данных без выгрузки всей таблицы в память?Посмотрел в многопотоке 1 поток при запросе к базе отрабатывает примерно за 5-7 сек при том что кубик 1.База данных на хостинге,разницы в хостингах нет попробовал 4 хоста у все так.
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 719
Благодарностей
1 377
Баллы
113

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43
1) вся база не выкачивается (!), только результат запроса
2) для ускорения нужно юзать индексы
Конвертировал кубик в c# база выкачивается вся.
Нет у зенки возможности обратиться сразу к нужной строке без переборов?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 719
Благодарностей
1 377
Баллы
113

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43
Это в каком экшене? Ты что то путаешь.
Да вот не путаю.Берет именно ту строку из таблицы которая нужна.Но при этом сначала загружает всю таблицу из bd
2018-05-10_115317.png
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43
select * from mytable where id=12345
такой запрос возьмет одну стркоу с конкретным id
id?А номер строки?Например мне нужно получить строку 1900 то как?Тот пример с id возвращает в переменную всю таблицу
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
для начала тебе нужно изучить поля своей таблицы. Там есть поле, отвечающее за идентификатор?
 

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43
у тебя запрос на выгрузку всей базы
Выше привели пример для запроса 1й строки по айди, например
А как сделать запрос именно на получение 1 строки?Просто в bd я полнейший ноль,а нормальной инфы у zp нету по bd
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43
для начала тебе нужно изучить поля своей таблицы. Там есть поле, отвечающее за идентификатор?
В таблице 2 столбца, url и form.Какой идентификатор нужен?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
ясно, идентификаторов нет. Обычно это колонка айди.
Хочешь 1900 строку - добавь в конце запроса LIMIT 1,1899
 

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
391
Благодарностей
166
Баллы
43
ясно, идентификаторов нет. Обычно это колонка айди.
Хочешь 1900 строку - добавь в конце запроса LIMIT 1,1899
Так он в переменную возвращает 1900 строк сразу.Подскажи как лучше сделать?Добавить столбец id с нумерацией?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
тогда попробуй LIMIT 1899,1
я давно в бд н еработал
 
Регистрация
04.09.2014
Сообщения
444
Благодарностей
624
Баллы
93

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
Если с таблицей будет взаимодействие, добавление удаление строк, столбец айди не особо поможет брать строки строго по номеру
 
Регистрация
04.09.2014
Сообщения
444
Благодарностей
624
Баллы
93
А такое понятие как курсор в MySQL (эта бд юзается?) присутствует?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)