powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по файловой структуре БД
16 сообщений из 16, страница 1 из 1
Вопрос по файловой структуре БД
    #40068358
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Одно из приложений, работающих на моей работе использует MySQL в качестве СУБД. Мой опыт работы с MySQL практически нулевой.

Так вот. База непомерно разрослась. Я посмотрел файлы в каталоге. Самый большой - f_logs.ibd судя по названию, это какой-то лог.
Вопрос: как его усечь до приемлемого размера? Я пытался это сделать командами из интернета, но оно не сильно помогло...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
mysql> use fm3base
No connection. Trying to reconnect...
Connection id:    475
Current database: *** NONE ***

Database changed
mysql> PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 5 DAY) + INTERVAL 0 SECOND;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    497
Current database: fm3base

Query OK, 0 rows affected (0.00 sec)

mysql>
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068386
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут еще порылся. Оно, конечно, логи, но логи прикладной программы, а не СУБД. То есть в БД есть такая таблица. Вот ее статистика:

mysql> show table status like 'f_logs' \G;
*************************** 1. row ***************************
Name: f_logs
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 97920745
Avg_row_length: 2056
Data_length: 201414672384
Max_data_length: 0
Index_length: 2291138560
Data_free: 7340032
Auto_increment: 92197295
Create_time: 2021-04-12 10:15:33
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.02 sec)


Только я из этой статистики не пойму, на сколько таблица занята реальными данными и, соответственно, есть ли смысл заморачиваться с дефрагментацией и сжатием?
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068410
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f9n6001,

Очистить таблицу несложно - командой truncate, например.
А вот как это повлияет на логику приложения - неизвестно.

Еще смущает Create_time: 2021-04-12 10:15:33
Если таблица недавно пересоздавалась, то значит в приложении есть механизм для этого?
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068431
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

я имею ввиду не удаление данных из таблицы, а ее перепаковку. То есть, на сколько я понял со слов гугла,InnoDB в принципе не умеет уменьшать размер файлов. То есть даже если от туда поудалять все данные, размер самого файла не уменьшится. Поэтому люди заморачиваются костылями, типа сделать дамп таблицы, потом удалить файл и восстановить его из дампа. В таком файле не будет пустот и его размер станет меньше.
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068458
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f9n6001
InnoDB в принципе не умеет уменьшать размер файлов.
Если включена опция для хранения таблиц в отдельных файлах, то умеет.
Сделайте OPTIMIZE TABLE имя_таблицы
Но если в этой таблице не было удалений записей, то размер файла не изменится существенно.
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068593
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за консультацию :))

Но все-таки еще один вопрос на последок. Помогите плз создать запрос для аргументов перед начальством. Итак, имеем таблицу f_logs. В ней есть ключевое поле time, формат поля datetime.
Вопрос: посчитать количество записей в таблице за конкретную дату. Например, за 04.05.2021
Вручную там не посчитаешь, там получилось порядка 4 тыс страниц по 500 записей на страницу в phpMysql.

Спасибо :)
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068602
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f9n6001,

Код: sql
1.
2.
3.
4.
SELECT date(`time`) log_date, count(*) cnt
FROM fm3base.f_logs
GROUP BY date(`time`)
ORDER BY date(`time`)
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068661
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

:)) А куда писать WHERE?
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068664
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f9n6001
:)) А куда писать WHERE?


Код: plaintext
1.
2.
3.
4.
mysql> SELECT date(`time`) log_date, count(*) cnt
    -> FROM fm3base.f_logs WHERE date('time') = '20210504'
    -> GROUP BY date(`time`)
    -> ORDER BY date(`time`);
Empty set, 1 warning (0.00 sec)

что-то ту не так...
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068671
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все. Разобрался.
Еще раз спасибо за помощь, вопрос закрыт :)
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40068682
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f9n6001,

Кавычки не те были.
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40069358
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, что-то я нервничаю...
Это же нормальный запрос? Все же правильно написал?

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use fm3base
Database changed
mysql> DELETE FROM fm3base.f_logs
-> WHERE date(`time`) <= '2021-05-01';


А то оно у меня с утра в таком виде висит и ни ответа, ни привета...
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40069377
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небось и записей дофига, и индексы на таблицы гроздьями. А ещё в неё поди и пишется что-то параллельно с удалением.

f9n6001
Это же нормальный запрос? Все же правильно написал?

Нет, конечно. Какой же это нормальный запрос, если в условии отбора функция?
Надо было
Код: sql
1.
2.
3.
DELETE 
FROM fm3base.f_logs
WHERE `time` < '2021-05-02 00:00:00';
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40069484
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Надо было
Код: sql
1.
2.
3.
DELETE 
FROM fm3base.f_logs
WHERE `time` < '2021-05-02 00:00:00';

Формально - как бы да, но конкретно с этими датами все равно фуллскан таблицы.
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40069528
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f9n6001,
результат запроса
Код: sql
1.
show create table fm3base.f_logs;

покажите,
какого типа поле TIME, а то гадаем
...
Рейтинг: 0 / 0
Вопрос по файловой структуре БД
    #40069558
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

datetime. Там, в начале треда это все обговаривалось с картинками
Собственно, вопрос-то решен. Похоже, глюк в прикладной программе. Надо с их поддержкой дальше списываться. Там SSL отключен в настройках, а лог забит такой вот фигней под завязку:

"An error occurred while attempting to establish an SSL or TLS connection.

This usually means that the SSL certificate presented by the server is not trusted by the system for one or more of
the following reasons:

1. The server is using a self-signed certificate which cannot be verified.
2. The local system is missing a Root or Intermediate certificate needed to verify the server`s certificate.
3. A Certificate Authority CRL server for one or more of the certificates in the chain is temporarily unavailable.
4. The certificate presented by the server is expired or invalid.

It is also possible that the set of SSL/TLS protocols supported by the client and server do not match.

See https://github.com/jstedfast/MailKit/blob/master/FAQ.md#SslHandshakeException for possible solutions.
"


Но к SQL это уже все отношения не имеет. Еще раз всем спасибо за поддержку :))
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по файловой структуре БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]