Questions tagged «mysql»

MySQL的所有版本(不是Microsoft SQL Server)。如果与此问题相关,还请添加特定于版本的标记,例如mysql-5.7。

1
MySQL:在内部查询中使用“ ORDER BY”优化UNION
我只是建立了一个由多个具有相同布局的表组成的日志系统。 每个数据源都有一个表。 对于日志查看器,我想 UNION所有日志表, 通过帐户过滤它们, 添加一个伪列以标识源, 按照时间排序他们, 并限制它们的分页。 所有表都包含一个称为zeitpunkt索引日期/时间列的字段。 我的第一次尝试是: (SELECT l.id, l.account_id, l.vnum, l.count, l.preis, l.zeitpunkt AS zeit, 'hp' AS source FROM is_log AS l WHERE l.account_id = 730) UNION (SELECT l.id, l.account_id, l.vnum, l.count, l.preis, l.zeitpunkt, 'ig' AS source FROM ig_is_log AS l WHERE l.account_id = 730) ORDER …

1
Amazon RDS MySQL 5.5 Innodb Lock超过等待超时
自从移至Amazon RDS以来,我们就遇到了一些非常疯狂的性能问题,而今天我们开始遇到锁定问题。因此,我认为这只是超时问题,因此检查了我们使用的内存。我们交换了大约70MB的内存。我用mysqltuner进行了一次内存巫婆搜索,它说最大可能的内存使用率为400%。现在,由于Percona的配置向导,我将其降低到100%以上。 但是,我们仍然存在此锁定问题,因此我假设它与内存/交换无关。为什么我仍然收到停工通知?这里发生了什么? 我相信重新启动可以解决问题,但这不应该是解决方案。将来我们可以做些什么来防止这种情况发生?我尝试刷新查询缓存和表-起作用了。 多亏了RDS:/ 我可以提供以下大量信息: 查询 INSERT INTO `myTable` (`firstName`, `lastName`, `email`) VALUES ('Travis', 'B...', '...@gmail.com') 错误信息 Lock wait timeout exceeded; try restarting transaction 表架构 CREATE TABLE IF NOT EXISTS `myTable` ( `id` int(15) NOT NULL AUTO_INCREMENT, `firstName` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `lastName` varchar(255) COLLATE utf8_unicode_ci NOT NULL, …

1
断电-查询完成了吗?
有没有办法检查查询是否完成?上周我出门度假时,我运行了3个运行时间很长的更新查询(每个+/- 25小时)。不幸的是,在一周中的某个地方,电源关闭了,运行MYSQL的计算机关闭了。有没有一种方法可以检查并查看3个(或全部三个)查询中的哪一个已完成? 我知道我可以检查数据是否已更新,但是如果正确且完整地执行了NULL,则应该仔细研究,并且有4,800万行数据需要仔细研究。有什么想法吗?
9 mysql 

3
如何解决在vps上运行的mysql中的过多连接和致命错误
我在linode服务器上运行一个应用程序PHPlist,同时运行12个PHP脚本,每个脚本均打开一个MySQL连接。现在,当我访问PHPlist时,通常会显示此错误: 致命错误:抱歉,服务器当前太忙,请稍后再试。 当我尝试访问phpMyAdmin时,它显示了#1040错误。运行cron作业的我的PHP脚本的输出显示: PHP警告:mysqli_connect():(HY000 / 1040):太多连接 我正在使用phpMyAdmin在服务器上使用LAMP堆栈;top终端中的输出显示mysqld使用100-130%CPU。当我尝试解决此问题时,我得到了一些提示: 增加max_connection变量:我正在使用200(默认为100) 打开表缓存:512(默认为400) 有很多变量需要设置,但我无法确定具体的变量,我从中获得了一些参考: 太多的连接 和http://dev.mysql.com/doc/refman/5.5/en/table-cache。 html 但是根据我的用法,如何增加内存以及对我来说最大的内存困难是什么。 在我的服务器上,我正在使用大约12个PHP脚本,用于发送电子邮件的PHPlist应用程序以及用于用户注册的主要数据库。 请帮助我解决这个问题。
9 mysql  phpmyadmin  php 

2
Amazon RDS I / O请求-1个查询= 1个可计费I / O?
我有一个要迁移到Amazon RDS上的InnoDB数据库。 我当前的实施托管在我自己的服务器上,每月显示大约800万次查询。 RDS网站说I / O费率为每100万个请求$ 0.10 1个I / O = 1个查询吗?也就是说,我会为此使用量+ RDS费用向我收取$ 80 / mo的费用吗?
9 mysql  innodb 

2
使用单个语句更新表中的许多行?
更新表中许多行的最简单方法是什么?我有一个csv文件,看起来像这样: |primary_key |value| | 1 | xyz| | 2 | abc| | 3 | def| ... 目标表中已经存在具有这些主键的行 我想用这些值更新目标表。有没有语法,所以我可以写类似: update mytable set value = ('xyz', 'abc', 'def') where primary key = (1,2,3); 查看《MySQL更新参考》,该站点(MySQL-csv更新),SO(更新多行,多数据库更新,更新多行),我怀疑答案是“否”,但我想确认这一点。是真的。
9 mysql  update  replace 

2
如何获得视图的执行计划?
我有一个带有多个视图的架构。我需要检查执行计划,以确保适当的索引到位并正在使用。 我该怎么做呢? 我宁愿不必复制输出并将其粘贴show create view <viewname>到中explain,尤其是因为某些视图是建立在其他视图之上的,这会很痛苦。

4
如何在phpMyAdmin中显示数据库结构?
有什么方法可以使用phpMyAdmin生成我的数据库结构的报告吗?我想要的是一种类似于以下的表格格式,以及一个实体关系表格。 Table name: List Description: Subscriber list information Field Type Null Description ListID Int N ListName Varchar N ListFromName Varchar N Default person represent for the mail ListReplyTo Varchar N Default return address ListSubject Varchar N Default subject title of mail ListRemindSub Int N Whether notify when people subscribe ListRemindUnSub …

3
为什么MySQL表崩溃?我该如何预防?
我是Moodle网站的管理员,该网站的Users表损坏了,因此无法使用。 幸运的是,一个简单的方法REPAIR TABLE mdl_user使它可以再次工作。问题是我不知道为什么它实际上崩溃了并使它无法使用,我想确保下次可以更好地进行准备。 我不是一个经验丰富的DBA,我只是做很多事情的开发人员,所以请多多包涵。 我可以恢复备份,但是我想有防止崩溃的方法。 这些表是utf8_general_ci并使用MyISAM。 为什么MySQL表崩溃?我该怎么做才能防止这种情况发生?
9 mysql  myisam 

3
mysql花费太长时间发送数据
我有一个简单的表,其中包含数百万个记录(14,000,000),而对于一个简单的查询,它花费了太多的时间“发送数据”。 桌子 CREATE TABLE IF NOT EXISTS details ( id int(11) NOT NULL, date date NOT NULL, time int(2) NOT NULL, minutes_online decimal(5,0) NOT NULL, minutes_playing decimal(5,0) NOT NULL, minutes_chatting decimal(5,0) NOT NULL, minutes_away decimal(5,0) NOT NULL PRIMARY KEY (id,date,time) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; 简单查询 mysql> SELECT * FROM …

2
为什么UPDATE SET REPLACE()语句匹配行,但什么都不更改且不发出警告?
我正在字段中寻找某个字符串,并希望将其替换为新字符串。具体来说,我希望将对一个URL的所有引用都更改为另一个URL。我已经编写了此SQL语句,并mysql>使用MySQL Community Server 5.1.54在CentOS 5.5 上的提示符下运行它。 update [table] set [field] = REPLACE([field],'%domain.com%','%domain.org%'); 响应为: Query OK, 0 rows affected (0.02 sec) Rows matched: 618 Changed: 0 Warnings: 0 我如何跟踪为什么不进行任何更改? 编辑1: 多亏了Aaron Bertrand,我发现它REPLACE()无法处理通配符,而且我完全错误地使用了它(认为:缺少WHERE子句)。这是我修改后的声明: UPDATE [table] SET [column] = REPLACE ( [column], 'companydomain.com', 'companydomain.org' ) WHERE [column] LIKE '%companydomain.com%'; 我收到了古老的,熟悉的: Query OK, 0 …
9 mysql  dml 


1
客户端超时,而MySQL查询仍在运行?
我们遇到了一个问题,其中一个只读查询通过MySQL工作台运行,从用户的UI角度来看已超时,并一直在服务器上运行(并且显然消耗了越来越多的资源),直到出现中断为止。 问题 有没有一种标准的方法来处理MySQL中的此类问题? 是否有我们需要避免的根本原因?


3
EXPLAIN输出表明未使用我的索引
我只在done_status(done_status = INT)上设置了带有索引的表: 当我使用时: EXPLAIN SELECT * FROM reminder WHERE done_status=2 我回来了: id select_type表的类型possible_keys键key_len参考行额外 1 SIMPLE提醒ALL done_status NULL NULL NULL 5使用 但是当我发出以下命令时: EXPLAIN SELECT * FROM reminder WHERE done_status=1 我得到以下返回: id select_type表的类型possible_keys键key_len参考行额外 1 SIMPLE提醒参考ref done_status done_status 4 const 2 该EXPLAIN让我发现,它采用5行,第二次2行。 我认为索引没有被使用,如果我第一次正确地理解它,它应该给我3行。我做错了什么? SHOW INDEX FROM reminder: 表非唯一键名Seq_in_index列名归类基数子部分打包为空Index_type注释Index_comment 提醒1 done_status 1 done_status …
9 mysql 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.