- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Работал ли кто, в мускуле с типом таблиц Memory?
Хочу кинуть туда данные счетчиков, для того чтобы, писать в базу на диск, только каждые 30 сек.
Тут возникла такая проблема, в мануале написано, что базу нужно очищать из памяти - только удаление таблицы и ее пересозданием (дроп или TRUNCATE TABLE). т.е. если просто удалять строку таблицы с которой ты уже отработал, она не уменьшает размер таблицы в памяти, даже если все строки удалить. Т.е. база может разрастись и попасть в СВОП.
И возник вопрос как правильно её дропать (пересоздать).
По идее можно сделать так:
LOCK TABLES
-переписывам данные из Мемори таблицы на диск
UNLOCK TABLES
TRUNCATE TABLE
Но тут возникает вопрос: в момент Анлока и до TRUNCATE TABLE не влезут ли какие нибудь инсерты и т.д.
Ведь запись в мемори базу идет постоянно.
INSERT INTO disk_tbl SELECT * FROM mem_tbl
TRUNCATE mem_tbl
Это тоже самое.
Как узнать, что какие либо данные не запишутся между командой Инсерт и Транкате?
Запись идет постоянно в мемори.
Если прочитать документацию внимательно, то становится ясно, что LOCK TABLES WRITE не дает никаким другим подключениям ничего делать с таблицей.
Соответственно, не запишутся. Но поскольку все остальные подключения будут ожидать, могут возникнуть другие проблемы.
Работал ли кто, в мускуле с типом таблиц Memory?
Хочу кинуть туда данные счетчиков, для того чтобы, писать в базу на диск, только каждые 30 сек.
Тут возникла такая проблема, в мануале написано, что базу нужно очищать из памяти - только удаление таблицы и ее пересозданием (дроп или TRUNCATE TABLE). т.е. если просто удалять строку таблицы с которой ты уже отработал, она не уменьшает размер таблицы в памяти, даже если все строки удалить. Т.е. база может разрастись и попасть в СВОП.
И возник вопрос как правильно её дропать (пересоздать).
По идее можно сделать так:
LOCK TABLES
-переписывам данные из Мемори таблицы на диск
UNLOCK TABLES
TRUNCATE TABLE
Но тут возникает вопрос: в момент Анлока и до TRUNCATE TABLE не влезут ли какие нибудь инсерты и т.д.
Ведь запись в мемори базу идет постоянно.
Сделайте пару таблиц. Пишите во вторую когда первая кандидат на очистку (прошло 30 секунд допустим), очищайте вторую если в ней есть записи и первая не кандидат на очистку.
Сделайте пару таблиц. Пишите во вторую когда первая кандидат на очистку (прошло 30 секунд допустим), очищайте вторую если в ней есть записи и первая не кандидат на очистку.
Да, с парой таблиц, похоже самый безопасный вариант.
почему не
lock table tbl write;
// write to disk
truncate table tbl;
unlock tables
должно на 5.x работать без проблем, но я проверил только на 5.5