LINUX.ORG.RU

Вопрос

 , ,


0

2

Я тут кое-что подумал, пришло в голову следующее, есть условная таблица:

id |   a  |  b  |
1  | First| Qwe |
2  | Two  | Asd |

Делаем запрос в БД по id(или там может быть хеш), заносим всю строку в massive[], и потом уже из него дергаем massive[1], massive[2] и т.д.

Итак, верны/осуществимы ли мои утверждения? Если да, то по сути все должно работать быстрее, чем по отдельности все дергать. Жду ваших комментариев. Если все подтвердится накину еще один вопрос.


Накинь, лучше, себе петлю на шею.

ovax ★★ ()

anonimous, подвизающийся на ниве SQL?

Apple-ch ★★ ()
Ответ на: комментарий от system

в вопросе напрочь отсутствует ТЗ. для чего эти манипуляции?

null123 ★★ ()

да как бы по-отдельности никто не дергает...

bvn13 ★★★★★ ()

Если да, то по сути все должно работать быстрее, чем по отдельности все дергать.

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

vurdalak ★★★★★ ()

заносим всю строку в massive[],

т.е. massive[1] == First, massive[2] == Qwe ?

Если да, то по сути все должно работать быстрее, чем по отдельности все дергать.

А по отдельности это ты на каждое поле делаешь запрос?

pi11 ★★★★★ ()

Делаем запрос в БД по id(или там может быть хеш)

Когда задача сводится к такой, обычно смотрят в сторону NoSQL.

x3al ★★★★★ ()

Что с чем сравнивается? Опиши оба сценария (например псевдокодом).

В целом если тебе нужны два поля из одной строки то разумно дёрнуть их одним запросом:
select a,b from tbl where id = 1;
а не двумя:
select a from tbl where id = 1;
select b from tbl where id = 1;
Расходы на sql запрос значимы

MrClon ★★★★★ ()
Последнее исправление: MrClon (всего исправлений: 1)

Не, ну если у тебя всего 2 строки с 2 атрибутами, то и бд не нужна. О чём вопрос-то?

Hater ★★ ()

Если в таблице до 500 записей и тебе нужно больше 20% - делай через массив, иначе делай отдельную выборку и кэшируй

kiotoze ★★★★ ()
Ответ на: комментарий от MrClon

Извиняюсь, объясняю я плохо.

Смысл в том что работаем со строками, а не со столбцами.

system ()

Так все и делают. И называется это «кеш»

P.S. Я выскочил и испортил не одну страницу искрометного юмора над гражданином

vertexua ★★★☆☆ ()
Ответ на: комментарий от x3al

Уахахаха, и тут тоже посоветовали NoSQL. Осталось посоветовать хацкель

vertexua ★★★☆☆ ()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Да ладно, тот же memcached — NoSQL и от этого никому не становилось плохо.

x3al ★★★★★ ()
Ответ на: комментарий от x3al

Я и не говорю что плохо. Но посоветовать NoSQL всегда - классика

vertexua ★★★☆☆ ()
Ответ на: комментарий от system

Смысл в том что работаем со строками, а не со столбцами.

Так всегда и работают со строками. Или я тебя не понимаю или ты какую-то фигню несешь.

pi11 ★★★★★ ()
Ответ на: комментарий от vertexua

Я таки изобрел велосипед? Вы уверены что поняли меня правильно?

system ()
Ответ на: комментарий от pi11

select a, b, c, d, e, f, g from tbl На деле конечно же там будет более столбцов.

Вместо этого мы просто запрашиваем строку по id и заносим в massive[]. И из массива дергаем, так же удобнее ~> возможно быстрее.

system ()
Ответ на: комментарий от system

Кто может сравнить скорость работы по моей теории?

system ()
Ответ на: комментарий от pi11

Да не ... Курить он ещё не дорос :)

Почитал бы ты примеры программок чтоли, а такую фигню спрашиваешь ... аж тоноко! :)

anonymous ()
Ответ на: комментарий от system

мы просто запрашиваем строку по id

В то время как БД может хранить всё столбцами...
Если опускаться до такого уровня, нужно знать, что происходит от и до.

GAMer ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.