mysql, возможно ли получить статистику об использовании процессора и памяти после запроса или команды вставки? - PullRequest
1 голос
/ 21 апреля 2020

Вкл. mysql Обычно я вижу время запроса

select * from rooms;
+---------+---------------+----------+
| number  | room_name     | identify |
+---------+---------------+----------+
|       1 | myroom        |        1 |
|       2 | studio 1      |        4 |
|       3 | Dancefloor    |        7 |
+---------+---------------+----------+
3 rows in set (0,00 sec)

Можно ли также получить информацию об использовании процессора и памяти с сервера mysql?

1 Ответ

2 голосов
/ 21 апреля 2020

Да. Это не что иное, как прошедшее время. Вы можете скопировать его, сохранив время начала и вычтя его из времени, когда запрос заканчивается. Как этот псевдокод.

start = Time.now
do_the_query
end = Time.now

elapsed_time = end - start

Копаясь в исходном коде mysql, это не что иное, как истекшее время часов.

Вот соответствующий код в client / mysql. cc.

static ulong start_timer(void) {
#if defined(_WIN32)
  return clock();
#else
  struct tms tms_tmp;
  return times(&tms_tmp);
#endif
}

static void end_timer(ulong start_time, char *buff) {
  nice_time((double)(start_timer() - start_time) / CLOCKS_PER_SEC, buff, true);
}

static void mysql_end_timer(ulong start_time, char *buff) {
  buff[0] = ' ';
  buff[1] = '(';
  end_timer(start_time, buff + 2);
  my_stpcpy(strend(buff), ")");
}
static int com_go(String *buffer, char *line MY_ATTRIBUTE((unused))) {
  ...

  char time_buff[52 + 3 + 1]; /* time max + space&parens + NUL */

  ...

  timer = start_timer();
  executing_query = true;
  error = mysql_real_query_for_lazy(buffer->ptr(), buffer->length());

  ...

    if (verbose >= 3 || !opt_silent)
      mysql_end_timer(timer, time_buff);
    else
      time_buff[0] = '\0';

Если вы не читаете C .. .

  1. timer = start_timer(); получает текущее время из times.
  2. mysql_real_query_for_lazy выполняет запрос.
  3. mysql_end_timer(timer, time_buff) вычитает текущее время из время начала и отображает его.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...