小编Dav*_*ave的帖子

我应该重新设计我的“事件”表

我的系统需要存储一个仅附加的事件日志。目前我有一个数据库表,将所有相关数据存储在一个表中:

CREATE TABLE `events` (
        `event_id` VARCHAR(255) NOT NULL PRIMARY KEY,
        `event_type` VARCHAR(255) NOT NULL,
        `event_timestamp` DATETIME,
        `group_id` VARCHAR(255),
        `person_id` VARCHAR(255),
        `client_id` VARCHAR(255),
        `name` VARCHAR(768),
        `result` VARCHAR(255),
        `status` VARCHAR(255),
        `logged_at` DATETIME,
        `severity` VARCHAR(255),
        `message` LONGTEXT,
        INDEX `event_type_index` (`event_type`),
        INDEX `event_timestamp_index` (`event_timestamp`),
        INDEX `group_id_index` (`group_id`),
        INDEX `person_id_index` (`person_id`),
        INDEX `client_id_index` (`client_id`),
        INDEX `name_index` (`name`),
        INDEX `result_index` (`result`),
        INDEX `status_index` (`status`),
        INDEX `logged_at_index` (`logged_at`),
      ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8_general_ci
Run Code Online (Sandbox Code Playgroud)

但是我注意到在 WHERE 子句中具有多个属性的查询仍然很慢。例如:

SELECT
  count(e.event_id) as total
FROM events e
WHERE
  e.result='Success' …
Run Code Online (Sandbox Code Playgroud)

mysql database-design optimization

2
推荐指数
1
解决办法
138
查看次数

标签 统计

database-design ×1

mysql ×1

optimization ×1