Ужасная производительность PageView

ВАЖНОЕ ИЗМЕНЕНИЕ: теперь это можно достичь с помощью полей DATETIME, начиная с MySQL 5.6.5, взглянуть на другой пост ниже ...

Предыдущие версии могут Не делайте этого с DATETIME ...

Но вы можете сделать это с помощью TIMESTAMP:

mysql> create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)

mysql> desc test;
+-------+-------------+------+-----+-------------------+-------+
| Field | Type        | Null | Key | Default           | Extra |
+-------+-------------+------+-----+-------------------+-------+
| str   | varchar(32) | YES  |     | NULL              |       | 
| ts    | timestamp   | NO   |     | CURRENT_TIMESTAMP |       | 
+-------+-------------+------+-----+-------------------+-------+
2 rows in set (0.00 sec)

mysql> insert into test (str) values ("demo");
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+------+---------------------+
| str  | ts                  |
+------+---------------------+
| demo | 2008-10-03 22:59:52 | 
+------+---------------------+
1 row in set (0.00 sec)

mysql>

** CAVEAT: Если вы по умолчанию задаете столбец с CURRENT_TIMESTAMP ON, вы необходимо ВСЕГДА указать значение для этого столбца, или значение автоматически перезапустится до «now ()» при обновлении. Это означает, что если вы не хотите, чтобы значение изменялось, ваш оператор UPDATE должен содержать «[имя вашего столбца] = [ваше имя столбца]» (или какое-то другое значение), или значение станет «now ()». Странно, но верно. Надеюсь, это поможет. Я использую 5.5.56-MariaDB **

2
задан Graham 16 January 2019 в 05:08
поделиться

1 ответ

Убедитесь, что вы тестируете производительность только с использованием профилей или сборок. Оценивать производительность с помощью отладочных сборок совершенно бессмысленно.

0
ответ дан Günter Zöchbauer 16 January 2019 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: