Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » LOCK TABLES tbl READ? READ LOCAL? LOW_PRIORITY? или WRITE?

Ответить
Настройки темы
LOCK TABLES tbl READ? READ LOCAL? LOW_PRIORITY? или WRITE?

Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: E-mail
Дата: 05-08-2006
вот с проблемой сталкнулся, нужно во время добавления в базу (порядка 5000 ++ разных insert-ов с селектами) залочить таблицы в которых модифицируется и добавляется информация, при этом те кто посещает страницу (порядка 700 000 хостов в день) должны моч читать из этих таблиц

изза большого посещения чтение более приоритетьнее, но при таком большом количестве чтений, не будет ли insert ждать вечно чтобы обработать 50 000 записей, которые делаются сразу но иногда в админке?)

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

клиент и сервер субд крутятся локально,

READ, READ LOCAL, LOW_PRIORITY, или WRITE?

-------
Основы HTML | Конференции


Отправлено: 00:18, 05-08-2006

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


E-mail
1) не определена база данных
2) предвижу что это MySQL, вы про описания к разным таблицам читали
3) 5000 запросов это фигня... не думаю что это займет больше нескольких минут... если все хорошо написано...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 00:25, 05-08-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


уточняю:

бд MySQL
тип MyISAM

по поводу
Цитата:
3) 5000 запросов это фигня... не думаю что это займет больше нескольких минут... если все хорошо написано...
ты можешь себе представить 10 000 пользователей, которые ждут загрузку страницы порядка "нескольких минут"???!

-------
Основы HTML | Конференции


Отправлено: 00:33, 05-08-2006 | #3


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


E-mail
а до этого ты писал порядка 10000хостов в день...
раз сервер держит 700000хостов значит он мощьный... значит и 5000 запросов пройдут очень быстро.. и даже если подождут одну минуту(во время минимальной нагрузки на сервер) в день не страшно... веть эти 5000 запросов не постоянно ходить будут...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 01:08, 05-08-2006 | #4


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula я тебя не спрашиваю как держать сервер или что страшно для пользователей, понимаешь, не 5000 а 50 000 не в этом суть вопроса, алло

-------
Основы HTML | Конференции


Отправлено: 01:56, 05-08-2006 | #5


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


E-mail
Цитата:
Vlad Drakula я тебя не спрашиваю как держать сервер или что страшно для пользователей, понимаешь, не 5000 а 50 000 не в этом суть вопроса, алло
суть в том что вы хотите по сути дела(посути вопроса) сделать транзакцию, а в MySQL этого нету... не тот уровень функциональности...
если можно чтобы запросы шли по раздельности то работать, а если единым блоком, то вам может понадобится сменить базу данных... по крайне это будет вполне логично в случае если вам так дороги ваши пользователи и у вас большие нагрузки...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 09:37, 05-08-2006 | #6


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula
Цитата:
суть в том что вы хотите по сути дела(посути вопроса) сделать транзакцию
нет, хочу совсем другое, то что в топе описал)

народ неужели никто не занимался лоченьем?..((

-------
Основы HTML | Конференции


Отправлено: 13:50, 05-08-2006 | #7


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Может быть локинг не есть самое лучшее решение?
Цитата:
Опция DELAYED для команды INSERT является специфической для MySQL возможностью, которая очень полезна, если клиент не может ждать завершения команды INSERT
Подробнее...

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 15:22, 05-08-2006 | #8


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


E-mail
Цитата:
народ неужели никто не занимался лоченьем?..((
1) для этого есть механихм разграничения прав достпупа...
2) для этого есть транзакции..

одной транзакцией всю вашу операцию(~ 5000 запросов) очень легко провернуть... и все(все что нужно) будет на время залочено...

а воотбе то алгоритм лока который вы описываете в точности похож на алгоритм работы лока в SQLite... один в один как просто процитировали...

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

может вам просто подумать о редизайне базы данных, чтобы не нужно было делать подобных действий?


-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 16:34, 05-08-2006 | #9


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Prisoner мне нужно чтобы до завершения 50000 запросов insert не было переиндексации

Vlad Drakula
Цитата:
но лок на запись одним процессов большого куска данных и на долго всегтда считалось плохим тоном
во время записи другие могут ЧИТАТЬ, при чем тут тон, редизайн бд, если не реализовывал лок, не томи, не надо пустого..

-------
Основы HTML | Конференции


Отправлено: 23:43, 05-08-2006 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » LOCK TABLES tbl READ? READ LOCAL? LOW_PRIORITY? или WRITE?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - A disk read error occurred Hemp Хочу все знать 27 07-12-2012 21:14
Драйвер - память не может быть read Rommel Microsoft Windows 7 21 06-08-2011 10:08
A disk read error occured Controller11 Ноутбуки 4 14-10-2008 10:56
[решено] Read-only на Program Files AlexSKOdessa Microsoft Windows Vista 24 18-06-2007 08:47
Read-only VCH Microsoft Windows 2000/XP 12 04-07-2004 17:59




 
Переход