我有一张桌子我想丢掉。该表使用了大约130 use的空间。当我开始删除/截断该表时,mysql服务器速度变慢,并且我收到许多有关使用该服务的用户的问题。
如何在不影响mysql性能的情况下删除大表?
我已经尝试创建一个类似于我想删除的新表,重命名它们并删除未使用的表(旧表),但是rename命令会挂起我的mysql服务。
我正在使用:
mysql Ver 15.1 Distrib 10.1.28-MariaDB, for Linux (x86_64) using readline 5.1
因此,我试图从相当大的mysql(Innodb)表中删除许多行。
我试图使用的查询如下:
delete from item where id in (select id from items_to_be_deleted);
item是70000‘000行表,items_to_be_deleted是1000行表。
我的查询似乎从来没有完成过,即使我给它添加了一个非常小的限制。(delete from item where id in (select id from items_to_be_deleted) LIMIT 10;
如果我运行select id from items_to_be_del
一夜之间,我们的MySQL服务器完全填满了硬盘驱动器。现在,我不能通过phpMyAdmin登录
`Cannot log in to the MySQL server`
或通过命令行
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
或者通过mysqladmin
mysqladmin: connect to server at 'localhost' failed
error: 'Can
我正在尝试备份一个大表,在阅读了这个站点上的其他各种答案之后,我尝试了
mysqldump --user=user --password=password dbname1 tablename | mysql --user=user --password=password dbname2
我知道错误了
DROP command was denied to user 'user'@'localhost' for table tablename
这让我很害怕。这是我第一次使用这么大的DB,因此需要使用mysqldump,所以我不知道发生了什么。为什么需要DROP命令?
我使用一个MySql表来存储当前登录用户的会话记录。一旦用户注销,我会更新同一条记录中的几个字段,并标记(撤销)它,表示不应该再次使用它。因此,每一个LogIn都会创建一个新的记录。这符合我的目的,但事实证明,这张桌子会越来越大。
存储会话的标准方法应该是什么?那些被撤销的应该存储在一个单独的表中,还是应该删除或者留在同一个表中?
我考虑将数据保留在同一个会话表中。在查询特定记录时,我使用两个字段进行查询:(idPeople (不是唯一的)和撤消(0或1)),例如SELECT * FROM session WHERE idPeople = "someValue" AND rev
在尝试从远程主机获得连接时,我进行了大量的授权。所以我就这么做了:
GRANT ALL PRIVILEGES ON *.* TO 'prog'@'foobar-dev.foobar.com' WITH GRANT OPTION;
但是,'foobar-dev‘已经不存在了。对于其他不存在的主机,还有一大堆其他条目。
我做了以下撤销,希望mysql.user中的条目会消失:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'prog'@'foobar-dev.foobar.com'.
这会将