![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Одна таблица, 100-200 записей, прочитал и очистил и ни каких truncate
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#12 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]()
Зачем чистить?
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Ну нужно мне одно поле в записи очистить (update ''). Там теперь еще есть поля, которые не нужно трогать
Последний раз редактировалось Illusiony; 13.08.2016 в 16:42. |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
У меня не одна таблица будет, а 100-200. Я уже писал почему не в одной таблице. И если я просто выполню последовательно 2 запроса чтение очистку(update), то между ними может вклиниться ( хотя и маловероятно) другая программа и сделать свои действия не должным образом( вроде как) .
Последний раз редактировалось Illusiony; 13.08.2016 в 16:41. |
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Есть же SELECT ... FOR UPDATE. А 200 таблиц по одной записи для ржачки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#16 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Вот так?
Код:
Последний раз редактировалось Illusiony; 13.08.2016 в 18:23. |
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
SELECT ... FROM ... WHERE ... FOR UPDATE
запускает транзакцию и отобранные строки лочатся для такой же команды. На чтение доступны в зависимости от уровня изоляции транзакции. В твоем случае выбирать одну строку по ид из таблицы UPDATE для этой строки снимает лок
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 13.08.2016 в 18:32. |
![]() |
![]() |
![]() |
#18 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Иду дерзать материал.
Сама таблица сейчас такая: Код:
Код:
А тут нужно два отдельных запроса и так нельзя?: Код:
Так правильно?: Код:
Последний раз редактировалось Illusiony; 13.08.2016 в 20:07. |
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
А вообще, может быть я в полном заблуждении в структуре задумки?
Поясняю. Соотношение кол http запросов от 2х программ к количеству очень простых запросов Mysql к очень простой (или простым) таблицам, допустим 1 http запрос на 2-3 запроса к бд. Я без понятия, но наверное 1 http запрос, даже самый коротенький займет больше времени чем этих 3 запроса к бд. Таким образом, возможно мне даже и не требуется делать какую то такую "преждевременную оптимизацию" и обычной одной таблицы innodb для всех этих данных хватит с головой? ( там SSD нормальной скорости на сервере). То есть, если я правильно понимаю, будет намного более сильно нагружен http сервер нежели БД? и бд даже в какой то мере будет простаивать? И еще вопросик. С помощью Jmetr вообще возможно эмитировать конкурентные http запросы ( а в них запросы к БД), чтобы в большей мере сравнить innodb и memory таблицы по скорости? |
![]() |
![]() |
![]() |
#20 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Итак я вот что протестировал:
Создал 3 таблички Memory и одну InnoDB В memory по 1 записи с заполненным полем str_click, в табличке InnoDB 3 записи с заполненными полями str_click. Пример memory: Код:
Код:
Memory: Код:
Код:
Итог: скрипт Memory отрабатывает около 5 секунд, а InnoDB около 11-15 секунд. Я конечно понимаю что тест далек от реальности, но хоть какое то сравнение. И наверняка есть существенные ошибки. В общем так и так скорость очень велика выполнения всего скрипта и в частности запросов к БД. И наверное, мне нету резона делать все на сотнях таблицах memory и можно обойтись одной таблицей InnoDB с несколькими сотнями записей. Ввиду того, что все равно на каждую итерацию такого тестового скрипта будет приходится по 1 http запросу к подобному скрипту и, по видимому нагрузка на Http сервер будет на порядок( порядки) больше нежели на БД. К тому же, наблюдал такую ситуацию: Нагрузка на проц при тесте Memory таблиц была 100%, а InnoBD держалась вблизи 66%. Очень интересно. Скорее всего это объясняется именно использования оперативной памяти и SSD. То есть проц простаивает из-за недостаточной скорости SSD. Основные процессы mysql и apache2 в тесте Memory занимали соответсвенно 54/43 % а у InnoDB 40/20. Загрузка Apache2 свзязано с выполнением PHP инструкций? Последний раз редактировалось Illusiony; 16.08.2016 в 17:55. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать программу, с помощью которой изображение будет разбиваться по пикселям и будет создаваться матрица | andrey4515 | Помощь студентам | 2 | 08.01.2014 18:44 |
Будет ли сервер idTCP работать без веделенного внешнего ip (Delphi Indy) | _PROGRAMM_ | Помощь студентам | 1 | 29.11.2010 13:52 |
какая структура *.icns?? | Ntlegend | Общие вопросы Delphi | 3 | 02.09.2009 01:24 |
Учет оплаты. Какая формула будет если..? | Anton_audit | Microsoft Office Excel | 5 | 12.08.2009 17:40 |
посчитать какая доставка для клинта 10-я? Delphi (Клиент-Сервер) | Vindigo | Помощь студентам | 6 | 27.01.2008 15:28 |