小编Jat*_*eth的帖子

如何从 MYSQL innodb 表中自动删除 6 个月前的数据

我有一个非常大的表,我每天都在其中获取数据,而且它的大小每天都在变大,但对于我的软件,只有 6 个月的数据有用。因此,我计划删除超过 6 个月的数据。我知道我可以使用 CRON 作业来完成,但我想使用 MYSQL 方式自动删除旧数据。我PARTITION也读过,我的问题是我可以使用它PARTITION还是我必须找到一些替代方法?

mysql innodb partitioning

7
推荐指数
2
解决办法
2万
查看次数

尝试获取锁时发现死锁;尝试在 mysql 中重新启动事务

我有一个如下所示的表结构,这个表有 100 万条记录,并且与两个和三个表有 FK 关系,这些表的记录也以百万计。我需要对这个表进行批量插入,但出现错误Deadlock found when trying to get lock; try restarting transaction,无法找到是什么造成了问题?

CREATE TABLE tags (
 id int(10) unsigned NOT NULL AUTO_INCREMENT,
  tag varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL,
  created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  UNIQUE KEY hashtag (tag)
 ) ENGINE=InnoDB AUTO_INCREMENT=657163 DEFAULT CHARSET=utf8mb4      COLLATE=utf8mb4_unicode_ci`
Run Code Online (Sandbox Code Playgroud)

我用来做批量插入的查询是

 INSERT INTO tags (tag) VALUES ('jatin'),('test') ON DUPLICATE KEY UPDATE tag = VALUES(tag);`
Run Code Online (Sandbox Code Playgroud)

我运行命令show engine innodb status,结果如下所示 …

mysql innodb foreign-key deadlock unique-constraint

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

Mysql - 列数如何影响数据库性能

我有一个表来存储用户的社交媒体信息;我有 42 列要存储,每天将有 100000 个条目要存储。我计划为其配备 MyIsam 引擎,并将对表使用水平分区,但我的问题是

  1. 我还应该进行垂直分区并将表分成 2 个表吗?
  2. 如果我们在查询中仅从表中选择 4 列,那么即使其他列不在列列表中,其他列的存在是否会影响查询?

mysql index database-design

5
推荐指数
1
解决办法
5283
查看次数

在每次查询运行时获取 InnoDb 内部错误

在运行每个查询时,我在 error.log 中遇到以下错误,因此我无法正确使用 error.log。

2016-05-30 09:39:58 7f7c7e3cb700 InnoDB: Error: Column last_update in table "mysql"."innodb_table_stats" is INT UNSIGNED NOT NULL but should be BINARY(4) NOT NULL (type mismatch).
2016-05-30 09:39:58 7f7c7e3cb700 InnoDB: Error: Fetch of persistent statistics requested for table "mysql"."innodb_table_stats" but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats instead.
Run Code Online (Sandbox Code Playgroud)

我已经检查了“mysql”。“innodb_table_stats”和 mysql.innodb_index_stats 表存在,但仍然收到这些错误。

两个表的结构如下:

CREATE TABLE `innodb_index_stats` (
  `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `index_name` …
Run Code Online (Sandbox Code Playgroud)

mysql innodb mysql-5.6

5
推荐指数
1
解决办法
8387
查看次数