Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Знатоки MySQL, подскажите, плз.
цитата
25/12/10 в 16:08
 ibiz
sergio21: действительно, как программа (допустим 3 потока одновременно) узнает, какие ид им брать?
цитата
25/12/10 в 16:30
 artursn
а нельзя взять добавить колонку статус, и туда писать значение когда уже эта строчка использована?
и потом читать данные
SELECT * FROM table WHERE status=0 LIMIT 0,20
цитата
25/12/10 в 17:18
 Pentarh
sergio21 писал:
Pentarh: чтобы указывать его в цикле программы, которая будет выдергивать одну за другой строки из базы и обрабатывать их.

Вы извращенец. Есть уже уникальный индекс ведь, зачем дублирующий праймари? Потому что в институте так учили? icon_smile.gif

И вообще, если не нравится логика автоинкремента, и если так нужно это поле, то вставляй и высчитывай его значение сам, хуле
цитата
26/12/10 в 00:23
 Dr.Syshalt
sergio21 писал:
Pentarh: чтобы указывать его в цикле программы, которая будет выдергивать одну за другой строки из базы и обрабатывать их.


Самое маразматическое использование primary key, которое можно придумать. Он не для этого используется, а для того, чтобы на него ссылаться из других таблиц - для нормализации. И все. А то потом тебе приходит в голову мысль, что надо бы и вычищать данные, удалять - и вся логика разваливается.

Если у тебя такой вопрос, как тут, возник - ты делаешь что-то очень и сильно не так. Хочешь верь, хочешь нет.

Используй ORDER BY ... LIMIT... и будет все хорошо - из того, что тут прочитал. Для "циклов" в SQL придуман SELECT. И работать будет намного быстрее, чем ручные циклы по ключу.
цитата
26/12/10 в 00:56
 Pentarh
ТС наверно не в курсе что mysql_fetch_assoc() можно юзать в цикле icon_lol.gif
цитата
27/12/10 в 03:46
 sergio21
Pentarh писал:
ТС наверно не в курсе что mysql_fetch_assoc() можно юзать в цикле icon_lol.gif

Не в курсе, и не стесняюсь этого. Мои познания в MySQL ограничиваются способностью без шпаргалки составить запрос вида Select * From 'Table' Where ... .
За всем остальным лезу в инет. Спасибо за подсказку, посмотрю, что это за функция такая.

FXIX писал:
...Про ALTER TABLE почитай в мане...

smail54.gif Вот именно ради таких подсказок я и задавал свой вопрос. Конечно, если эта команда каждый раз создает новую таблицу и стирает старую, то ее не стоит применять. Спасибо!

ibiz писал:
...как программа (допустим 3 потока одновременно) узнает, какие ид им брать?...

Планирую сделать вспомогательную табличку, в которой будет сохраняться и постоянно актуализироваться "Progress-Point".
Каждый из потоков будет оттуда читать/туда писать, с какой строкой из базы он работает. Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет. Тогда можно, в принципе, и от id отказаться. icon_rolleyes.gif
Наверное, так и сделаю. Что-то вроде: Select key1, key2 From table Where Status = false Limit 1

С удовольствием выслушаю дальнейшую критику и замечания. А пока всем рейтинг и большое спасибо!
цитата
27/12/10 в 03:56
 sergio21
Оффтопик: Pentarh писал:
... Потому что в институте так учили? icon_smile.gif...

Когда я в институте учился, ни MySQL, ни интернета (в нынешнем его понятии) не существовало еще. icon_wink.gif
цитата
27/12/10 в 09:37
 ibiz
sergio21 писал:
Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет. Тогда можно, в принципе, и от id отказаться. icon_rolleyes.gif
Наверное, так и сделаю. Что-то вроде: Select key1, key2 From table Where Status = false Limit 1
С удовольствием выслушаю дальнейшую критику и замечания. А пока всем рейтинг и большое спасибо!


если порядковость данных не важна, то так и надо делать
цитата
27/12/10 в 11:29
 Pentarh
ТС, учил бы ты матчасть, а? Я думал ты хоть что то знаешь по клиент-серверному взаимодействию и архитектуре баз mysql, а тут оказывается вообще все запущено. Сходи на mysql.ru или еще куда нибудь.
цитата
27/12/10 в 21:47
 FXIX
sergio21 писал:

Планирую сделать вспомогательную табличку, в которой будет сохраняться и постоянно актуализироваться "Progress-Point".
Каждый из потоков будет оттуда читать/туда писать, с какой строкой из базы он работает. Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет.

лучше с флагами работай. добавь поле
Цитата:
enum('0', '1', '2') comment '0 - необработано. 1 - обработано. 2- обрабатывается'
Стр. « первая   <  1, 2


Эта страница в полной версии