Накладные расходы MySQL, мой запрос неправильный или я должен оптимизировать таблицу? - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть настройки таблицы, как показано ниже.

Table comment_flags
    user_id
    comment_id

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

Проблема в том, что, когда они удаляют комментарий, после того, как я удаляю запись, таблица comment_flags получает примерно 30-40 байтов служебной информации, даже после отмены всего 5 комментариев.

Здесь в основномчто происходит: -

Пользователь помечает комментарий, поэтому я вставляю user_id и comment_id в таблицу comment_flags, затем пользователь разблокирует комментарий, а я удаляю из таблицы comment_flagsuser_id и comment_id.

Я не уверен, что причиной этого является мой SQL, я думаю, что это всего лишь оператор DELETE в целом.

Я мог бы оптимизироватьтаблица после каждого оператора DELETE для очистки таблицы.

Считается ли это хорошей идеей?Как все остальные справляются с этим?

Мой sql очень простой.

INSERT INTO comment_flags VALUE('$user_id', '$comment_id')
DELETE FROM comment_flags WHERE user_id = '$user_id' AND comment_id = '$comment_id'

1 Ответ

1 голос
/ 08 декабря 2011

Я мог бы оптимизировать таблицу после каждого оператора DELETE для очистки таблицы.Считается ли это хорошей идеей?

Для 30-40 байтов?Нет.

Как все остальные справляются с этим?

Не мешая.Пробел следует повторно использовать для любых последующих INSERT с, и это хорошая вещь.

...