Questions tagged «mysql»

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

4
检查约束不起作用?
我有下表。 create table test ( id smallint unsigned AUTO_INCREMENT, age tinyint not null, primary key(id), check (age<20) ); 问题在于该CHECK约束不适用于“年龄”列。例如,当我为年龄字段插入222时,MySQL接受它。
23 mysql  constraint 

2
备份MySQL数据库的最佳做法
我最近发现,我们运行于MySQL的生产Web服务器没有得到定期(或根本没有)备份。我曾经备份过SQL Server数据库,但是对MySQL数据库却没有很多经验。是否有使用“ mysqldump”或任何其他数据库备份工具的最佳实践? 我可能会安排日程表,以便每晚进行,然后使用备份系统备份文件。 谢谢。
23 mysql  mysqldump 

3
如果一列存在,如何选择特定行;如果一列不存在,如何选择所有行
我正在编写一个脚本,该脚本获取一些表的行数,但是对于某些表,我只想获取设置了标志(在本例中为active = 1)的行数。有没有一种方法可以在一个查询中做到这一点? 例如: 表中users有一个称为活动的列 表clients没有称为活动的列 我想获得其中active = 1的用户数,而只是获得客户数。 在您说“只是硬编码”之前,这是一个查询,该查询正在python脚本内进行,该python脚本可以在许多不同的数据库上运行,并且我无法知道我的脚本将选择哪些表,以及它们是否具有名为的列active。我宁愿只有一个查询来完成所有操作,而不是两个单独的查询,并依靠mysql引发错误,所以我知道要使用另一个查询。
23 mysql  select  count 

1
如何在MySQL中将多个字段设置为主键?
我有一张桌子 员工ID 等等 blahblah2 ..... 记录月 回顾年 因此,每个员工只应有一个匹配的条目来输入月,年,Emp#。如何设置表格。 那么,如何设置表以使EmployeeID可以每月更新一次,但永远不能在匹配的月份和年份中有两个条目?

6
在30,000,000行表上的DELETE命令未完成
我继承了一个数据库,并希望清理并加快它的速度。我有一个表,其中包含30,000,000行,由于代表程序员的错误,其中许多行都是垃圾数据。在添加任何新的,更优化的索引之前,我已将表从MyISAM转换为InnoDB,并希望删除很多包含垃圾数据的行。 数据库是MySQL 5.0,我具有对该服务器的root访问权限。我首先通过Adminer运行这些命令,然后通过phpMyAdmin运行,结果均相同。 我正在运行的命令是, DELETE FROM `tablename` WHERE `columnname` LIKE '-%' 本质上,删除此列中以破折号开头的所有内容-。 它运行大约3-5分钟,然后当我查看进程列表时,它就消失了。 然后我跑 SELECT * FROM `tablename` WHERE `columnname` LIKE '-%' 它返回数百万行。 为什么我的删除语句没有完成? PS,我知道MySQL 5.0是过时的。我正在努力将数据库移至MySQL 5.6 w InnoDB(也许是MariaDB 10 w XtraDB),但是直到发生这种情况之前,我一直希望使用DB来解决此问题。 - 编辑已删除,请参阅我的答案。

3
MySQL复制从站是否应该设置为只读?
通过遵循本指南,我已经在Percona Server 5.5上运行了复制,并且想知道是否应该将其添加read-only=1到从属服务器中my.cnf以使其只读。 该指南为mysql表设置了复制,以便复制用户,但是我主要是使用从属服务器来获取mysqldumps,在紧急情况下将其重新配置为主服务器,因此我认为我们不需要(或应该)启用写入功能它不断吗?

3
频繁查询缓存失效的开销值得吗?
我目前正在使用一个MySQL数据库,在该数据库中,我们从查询缓存中看到大量无效信息,这主要是由于在许多表上执行的INSERT,DELETE和UPDATE语句数量很多。 我要确定的是,将查询缓存用于针对这些表运行的SELECT语句是否有任何好处。由于它们是如此之快地失效,在我看来,最好的办法是仅对这些表的SELECT语句使用SQL_NO_CACHE。 频繁失效的间接费用是否值得? 编辑:在下面的用户@RolandoMySQLDBA的请求下,这是MyISAM和INNODB上的信息。 创新数据库 资料大小:177.414 GB 索引大小:114.792 GB 桌子大小:292.205 GB 我的ISAM 资料大小:379.762 GB 索引大小:80.681 GB 桌子大小:460.443 GB 附加信息: 版本:5.0.85 query_cache_limit:1048576 query_cache_min_res_unit:4096 query_cache_size:104857600 query_cache_type:开启 query_cache_wlock_invalidate:关闭 innodb_buffer_pool_size:8841592832 24GB RAM

3
为什么“ LOAD DATA INFILE”比普通的INSERT语句快?
我读过一篇文章提到,通过使用该语句,可以从csv文件读取数据并将其插入数据库中,从而每秒可以完成60,000次插入LOAD DATA IN FILE。 为什么它与普通刀片不同? 编辑: 我通过只调用一条INSERT语句减少了往返行程: INSERT INTO tblname VALUES (NULL,2,'some text here0'),(NULL,2,'some text here1') ,(NULL,2,'some text here2'),(NULL,2,'some text here3') .....,(NULL,2,'some text here3000'); 那这个呢?
22 mysql  import  bulk 

2
Percona与MySQL
什么是Percona? 它与MySQL有何不同? 我们何时应该考虑从现有的MySQL切换到Percona(或升级)? 为了在我们的情况下添加一些细节,我们几乎专门使用InnoDB(据我了解Percona做了很多优化),它具有广泛的外键约束和一些存储过程。 我们目前发现的是MySQL无法优化查询,因此任何超过3-4个联接的查询都必须使用STRAIGHT联接显式构建以提高性能。

4
MySQL错误:用户'a'@'localhost'的访问被拒绝(使用密码:是)
我使用root帐户创建了该帐户'a'@'%'。但是,当指定host参数时,无法使用该帐户连接到MySQL服务器。没有-h参数,我可以成功连接。请参阅下面的成绩单。我希望有人能帮助我解释一下。谢谢。 mysql> grant all on *.* to 'a'@'%' identified by a; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a' at line 1 mysql> grant all on *.* to 'a'@'%' …

6
检查InnoDB表是否已更改的最快方法
我的应用程序非常耗费数据库。当前,我正在运行MySQL 5.5.19并使用MyISAM,但是我正在迁移到InnoDB。剩下的唯一问题是校验和性能。 我的应用程序CHECKSUM TABLE在高峰时间内每秒执行约500-1000条语句,因为客户端GUI不断轮询数据库以查找更改(它是一个监视系统,因此必须非常敏感且快速)。 使用MyISAM,可以在修改表时预先计算出实时校验和,而且校验和非常快。但是,InnoDB中没有这样的东西。所以,CHECKSUM TABLE非常慢。 我希望能够检查表的最后更新时间,不幸的是,这在InnoDB中也不可用。我被困住了,因为测试表明应用程序的性能急剧下降。 太多的代码行更新了表,因此在应用程序中实现逻辑以记录表更改就成为不可能了。 有什么快速的方法可以检测InnoDB表中的更改?

3
LIKE如何实施?
谁能解释一下LIKE运算符如何在当前数据库系统(例如MySQL或Postgres)中实现?还是让我参考一些解释它的参考文献? 天真的方法是检查每条记录,在感兴趣的字段上执行正则表达式或部分字符串匹配,但是我有一种感觉(希望),这些系统做得更聪明。

7
需要将SQL Server迁移到MySQL
我在Windows服务器上的SQL Server 2008上有一个数据库,我想将所有数据移到Ubuntu服务器上的MySQL数据库中。我尝试将SQL Server导入和导出向导与MySQL ODBC驱动程序一起使用,并且它可以正确访问两个数据库,但是不存在包含用于类型转换的规范的xml文件,并且该规范对于我而言无法正确创建。有谁知道如何创建类型转换文件或在哪里可以找到更好的工具来传输此数据?

3
mysql dump import在我的开发人员的机器上非常慢
我有一个SQL转储,它很大(411 MB),并且在服务器A上花费了10分钟的导入时间,在我的工作站B上的同一次导入,估计(pipeviewer)需要8个小时的时间来导入(它在40分钟内导入了31 MB) ),这是慢53倍。 规格: Server A: MySQL Version: 5.5.30-1.1 (Debian) 2 GB RAM 1 core QEMU Virtual CPU version 1.0 - cpu MHz: 3400.020 Workstation B: MySQL Version: 5.5.41-MariaDB-1ubuntu0.14.04.1 14 GB RAM 4 cores Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz - cpu MHz: 1600.000 mysql / maria配置是标准配置。 我昨天切换到工作站上的MariaDB-但是在MariaDB之前,统计数据甚至更糟。 我已经删除了工作站上的所有数据库-没什么不同。 …

1
努力调试Amazon RDS MySQL实例上的高CPU使用率
我们正在运行m1.xlarge MySQL RDS服务器,并且在CPU使用率较高方面存在一些问题。几周前,我们遇到了一些问题,大型实例上的CPU利用率达到了100%。当我们将大小升级到xlarge时,可以稳定一段时间,但CPU使用率逐渐上升。 在过去一周左右的时间里,CPU利用率一直处于90年代的最高水平,昨天一直稳定地达到100%左右,这使我们的生产基地停顿了下来。重新引导数据库服务器后,几个小时内CPU使用率又恢复到相同的水平。 我已经在mysql服务器上运行了show processlist,并一直通过MySQL admin进行监视。似乎也没有特别长时间运行的查询或大量查询。有两个进程长时间处于睡眠状态……这些是在我们的主应用程序外部运行的与数据库通信的隔离工作程序守护程序。我在下面的过程列表输出中复制了服务器名称,以对其进行描述: +------+----------+---------------------------------------------------+--------------+---------+-------+--------------+----------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +------+----------+---------------------------------------------------+--------------+---------+-------+--------------+----------------------------------------------------------------------------------------+ | 13 | rdsadmin | localhost:43513 | mysql | Sleep | 14 | | NULL | | 15 | proddbuser | app-server-1.eu-west-1.compute.internal:36460 | proddb …
21 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.