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:
чтобы указывать его в цикле программы, которая будет выдергивать одну за другой строки из базы и обрабатывать их.
Вы извращенец. Есть уже уникальный индекс ведь, зачем дублирующий праймари? Потому что в институте так учили?
И вообще, если не нравится логика автоинкремента, и если так нужно это поле, то вставляй и высчитывай его значение сам, хуле
цитата
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() можно юзать в цикле
цитата
27/12/10 в 03:46
sergio21
Pentarh писал:
ТС наверно не в курсе что mysql_fetch_assoc() можно юзать в цикле
Не в курсе, и не стесняюсь этого. Мои познания в MySQL ограничиваются способностью без шпаргалки составить запрос вида Select * From 'Table' Where ... .
За всем остальным лезу в инет. Спасибо за подсказку, посмотрю, что это за функция такая.
FXIX писал:
...Про ALTER TABLE почитай в мане...
Вот именно ради таких подсказок я и задавал свой вопрос. Конечно, если эта команда каждый раз создает новую таблицу и стирает старую, то ее не стоит применять. Спасибо!
ibiz писал:
...как программа (допустим 3 потока одновременно) узнает, какие ид им брать?...
Планирую сделать вспомогательную табличку, в которой будет сохраняться и постоянно актуализироваться "Progress-Point".
Каждый из потоков будет оттуда читать/туда писать, с какой строкой из базы он работает. Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет. Тогда можно, в принципе, и от id отказаться.
Наверное, так и сделаю. Что-то вроде: Select key1, key2 From table Where Status = false Limit 1
С удовольствием выслушаю дальнейшую критику и замечания. А пока всем рейтинг и большое спасибо!
цитата
27/12/10 в 03:56
sergio21
Оффтопик:
Pentarh писал:
... Потому что в институте так учили?
...
Когда я в институте учился, ни MySQL, ни интернета (в нынешнем его понятии) не существовало еще.
цитата
27/12/10 в 09:37
ibiz
sergio21 писал:
Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет. Тогда можно, в принципе, и от id отказаться.
Наверное, так и сделаю. Что-то вроде: 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
Новая тема
Ответить
Эта страница в полной версии