小编Rol*_*DBA的帖子

用不同的名称恢复mysql数据库

我们如何从 mysqldump 文件中恢复不同名称的 mysql 数据库。我不想打开转储文件并对其进行编辑。还有其他更好的方法吗?

mysql mysql-5 mysqldump backup restore

52
推荐指数
4
解决办法
11万
查看次数

MySql 中 VARCHAR 字段的可能索引

我在MySql 数据库中工作,有一个这样的表:

+--------------+
|  table_name  |
+--------------+
|    myField   |
+--------------+
Run Code Online (Sandbox Code Playgroud)

...我需要进行很多这样的查询(列表中有 5-10 个字符串)

SELECT myField FROM table_name
WHERE myField IN ('something', 'other stuff', 'some other a bit longer'...)
Run Code Online (Sandbox Code Playgroud)

将有大约 24.000.000 个唯一行

1)我应该使用FULLTEXTor 和INDEXkeyVARCHAR(150)吗?
2)如果我将字符从 150 增加到 220 或 250 ......会产生很大的不同吗?(有没有办法计算它?)
3)正如我所说,它们将是唯一的,所以myField应该是一个PRIMARY KEY。向已经是 VARCHAR INDEX/FULLTEXT 的字段添加 PRIMARY KEY 是不是很少见?

mysql index full-text-search varchar

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

如何尽可能快地更新 MySQL 单表中 1000 万+ 行?

大多数表使用 MySQL 5.6 和 InnoDB 存储引擎。InnoDB 缓冲池大小为 15 GB,Innodb DB + 索引大约为 10 GB。服务器有 32GB RAM 并运行 Cent OS 7 x64。

我有一张包含大约 1000 万条记录的大表。

我每 24 小时从远程服务器获取更新的转储文件。该文件为 csv 格式。我无法控制那种格式。该文件约为 750 MB。我尝试将数据逐行插入 MyISAM 表,花了 35 分钟。

我只需要从文件中的每行 10-12 中取出 3 个值并在数据库中更新它。

实现这样的目标的最佳方法是什么?

我需要每天都这样做。

目前 Flow 是这样的:

  1. mysqli_begin_transaction
  2. 逐行读取转储文件
  3. 逐行更新每条记录。
  4. mysqli_commit

以上操作大约需要30-40 分钟才能完成,在执行此操作时,还有其他更新正在进行中,这给了我

超过锁等待超时;尝试重新启动事务

更新 1

使用LOAD DATA LOCAL INFILE. 在 MyISAM 中,38.93 sec在 InnoDB 中需要 7 分 5.21 秒。然后我做了:

UPDATE table1 t1, table2 t2
SET …
Run Code Online (Sandbox Code Playgroud)

mysql myisam performance update mysql-5.6

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

InnoDB:错误:升级到 mysql 5.6 后找不到表“mysql”.“innodb_table_stats”

我从 5.5 升级到 mysql 5.6,现在我的日志在启动时到处都是这样的消息

我在这里找到了一个可能的解决方案,但它似乎不是官方的。 http://forums.mysql.com/read.php?22,578559,579891#msg-579891

2013-12-06 21:08:00 7f87b1d26700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-12-06 21:08:00 7f87b1d26700 InnoDB: Recalculation of persistent statistics requested for table "drupal"."sessions" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.
2013-12-06 21:08:07 7f903c09c700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
Run Code Online (Sandbox Code Playgroud)

任何官方解决方案或 100% 修复?

mysql innodb mysql-5 mysql-5.5 mysql-5.6

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

在 MySQL 中,WHERE 子句中列的顺序会影响查询性能吗?

我在某些具有大量可能结果集的数据库查询上遇到了性能问题。

有问题的查询,我AND在 WHERE 子句中有三个

条款的顺序重要吗?

就像,如果我把 ASI_EVENT_TIME 子句放在第一位(因为这会从任何子句中删除大部分结果。

这会改善查询的运行时间吗?

询问:

SELECT DISTINCT  activity_seismo_info.* 
FROM `activity_seismo_info` 
WHERE 
    activity_seismo_info.ASI_ACTIVITY_ID IS NOT NULL  AND 
    activity_seismo_info.ASI_SEISMO_ID IN (43,44,...,259) AND 
    (
        activity_seismo_info.ASI_EVENT_TIME>='2011-03-10 00:00:00' AND 
        activity_seismo_info.ASI_EVENT_TIME<='2011-03-17 23:59:59'
    ) 

ORDER BY activity_seismo_info.ASI_EVENT_TIME DESC
Run Code Online (Sandbox Code Playgroud)

查询的解释:

+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+ 
| id | select_type | table   | type  | possible_keys             | key          | key_len | ref  | rows  | Extra                       |
+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+ 
|  1 | SIMPLE      | act...o | range | act...o_FI_1,act...o_FI_2 | act...o_FI_1 | 5       | NULL | 65412 …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-5 performance

43
推荐指数
4
解决办法
4万
查看次数

普通人字段的最佳实践(姓名、电子邮件、地址、性别等...)

常见字段的长度和数据类型最常见的最佳实践是什么,例如:

  • 地址
  • 电子邮件
  • 性别
  • 状态
  • 城市
  • 国家
  • 电话号码

等等....

database-design best-practices

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

如何从 SHOW TABLE STATUS 结果中进行选择

我想限制从

SHOW TABLE STATUS
Run Code Online (Sandbox Code Playgroud)

MySQL 5.1 中的命令。有没有办法通过SELECT语句获得相同的信息,以便我可以以正常方式操作结果?

mysql select

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

MySQL 连接睡眠“太长”多长时间?

我登录到我的服务器来检查数据库的状态,并注意到SHOW PROCESSLIST;有大量非常旧的连接正在休眠。

在此处输入图片说明 在连接应该被杀死之前,连接时间限制应该持续多长时间?

如何在 MySQL 5.0.51a-3ubuntu5.4 中设置时间限制?

笔记:

我正在使用 PHP 5.2.x 和 symfony 框架 1.2。

mysql mysql-5

41
推荐指数
1
解决办法
12万
查看次数

仅转储 MySQL 中的存储过程

我只需要转储存储过程:没有数据,没有表创建。如何使用 mysqldump 执行此操作?

mysql mysqldump backup stored-procedures dump

41
推荐指数
1
解决办法
6万
查看次数

如何在 Mysql 中更改 VIEW 的 DEFINER?

当我运行 mysqldump 时,出现错误:

mysqldump: Got error: 1449: The user specified as a definer ('root'@'foobar') does not exist when using LOCK TABLES
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为它foobar是一台不再存在的旧机器。

如何将所有表的定义器更改为 'root'@'localhost'?

mysql mysqldump permissions

41
推荐指数
4
解决办法
13万
查看次数