Questions tagged «mysql»

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

1
最好为每个用户帐户创建一个表,或者为MYSQL中的所有用户数据创建一个巨大的表
我正在创建一个Web目录,该目录将允许各个用户注册一个帐户并将本质上的文本文档存储在mysql数据库条目中。 最初可能只有几百个用户,但我们希望在某个时候拥有10,000到100,000。而且每个用户都可以上传100-200个“文档”。 创建一个由用户编号索引的海量表会更有效吗?从理论上讲,这可以增长到20,000,000个条目。还是继续为每个用户创建带有各自文档的表格? 我以为在数据库中有成千上万个表是不健康的,但是我真的找不到关于此的任何具体数据。
8 mysql 

2
正确的MySQL数据库维护
我希望这不是一个太大的问题。我敢肯定,它将能够帮助我以及以后遇到的任何dba新手。 我是一名DBA的系统管理员(因为我帮助CEO提出了自己的观点,因此我显然可以管理我们的数据库!)。它不是数据库服务器那么大或忙碌……mysqldump的大小约为6GB,花了我们5年的时间才使它变得如此大。Munin报告说,我们在高峰时段平均每秒查询40-60次查询。 我的老板为我支付了Oracle University系统管理课程的费用,但通过该课程,它仅说明mysql服务器的不同部分,做什么工作以及如何做。但这还不是那么深入,您肯定不会走DBA的那门课。 因此,作为当前的DBA,我应该怎么做才能确保一切顺利进行?我可以执行日常维护任务吗?我应该检查某些指标吗?或者换句话说,作为DBA,您每天会做什么以保持一切良好状态? 如果可以帮助您量身定制答案,请按以下说明进行操作。我们有171个表,除了3个以外,其他都是innodb,其他的都是myisam。我们使用RBR在主数据中心和灾难恢复站点之间设置了主/从复制。版本是5.5.28。 我能做什么?

6
移动大型数据库
我有一个centos服务器,/ var / lib / mysql /是125GB(磁盘有1GB可用空间)。 通常,我会使用mysqldump备份数据库,但是我通常不使用大型数据库,因此我需要知道将数据库复制到新服务器的最安全方法。 所有建议表示赞赏!

1
在MySql中显示每月出勤报告
我正在使用Mysql DB在php中执行学校管理系统。我被困在我的项目中。请任何人提出我做错了什么。 我的数据库中有两个表。一种是存储Students记录,另一种是存储attendance日 现在,我想显示当前月份特定班级所有学生的报告,无论他们是否在场。但是我仅在出勤表中捕获缺席学生的详细信息。 我已经编写了sql查询以在此处显示结果: SELECT tab.class, attend, DATE, ta.rollno, ta.StdNm FROM tbl_absentees tab, tbl_admission ta WHERE ta.Cls = class AND ta.rollno = tab.rollno AND class =22 AND attend = 'A' AND DATE = '2013-06-07'; 结果是: Class Attend RollNo StudentName 但是我想以31天表格的方式显示,如果出席者= A则缺席的日子显示A,否则只显示出勤表中的日期,否则显示剩余天数的'P' 我该如何在mysql中做到这一点?谁能建议/给我一个构想来实现这一目标。 抱歉,我的问题不明确。实际上,我想显示特定月份的出勤报告,其中数据来自两个表: 第一个表由StudentName,RollNo,Class组成 第二个表包含日期,状态,RollNo,类 现在我想显示象报告这样。
8 mysql  pivot 

2
如何仅从.frm文件提取表架构?
我已经从备份中提取了mysql的数据目录,并且需要从旧表中获取架构,但是它是来自另一台计算机的备份。 我今天已经阅读了很多有关如何执行此操作的教程,但是每次它似乎都失败了,或者由于mysql挂起或崩溃而最终不得不重新安装mysql。我尝试了以下方法: 创建一个不同的数据库 在该数据库中创建具有相同名称的表 替换档案 停止/启动引擎 从.frm文件中恢复 我尝试了各种顺序和组合。 是否有任何外部工具可以从.frm文件中提取模式?如果打开文件,我可以看到列名。我看了一下,但似乎找不到任何能使我做到这一点的东西。 提前致谢。

4
mysql复制成功,但是slave没有复制
我已经创建了mysql主从配置,并且一切正常。“显示主状态”;在奴隶上不显示任何错误。这是输出 Slave_IO_State: Waiting for master to send event Master_Host: 109.123.100.58 Master_User: replica Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 106 Relay_Log_File: relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 106 Relay_Log_Space: 106 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 …

1
启动/停止MySQL
我正在寻求帮助,以了解执行以下命令行时会发生什么: root@prodn$ service mysqld stop 是的,它关闭了MySQL服务器,因此直到再次启动该服务后,对它的访问不再可用。但是,更具体地说,停止服务时还会发生其他情况吗?请原谅我的新手,但是当mysqld重新启动时,是否表示日志已刷新,部分内存已释放,缓存已清空等? 我问的原因如下: 我们的数据仓库数据库是MySQL数据库,在过去的4个月中,平均花费了8.5个小时。 上星期三,我停止了mysql服务,然后在30分钟后重新启动它。从那以后,我开始注意到整体性能有了巨大的提高 -SELECT / INSERT / UPDATE / DELETE流程更加高效。DW在差不多4个小时前完成了相同数量的数据行 但是,随着时间的流逝,完成时间会增加15-20分钟。因此,我怀疑我可能必须每周重新启动该服务。 有这种行为的解释吗?我不知道还有什么其他问题,但是很高兴知道mysqld服务重启时会发生什么。 谁能对此有所启发?

1
删除InnoDB数据库时出错
我试图在mysql中删除数据库,但每次遇到此错误 ERROR 2013 (HY000): Lost connection to MySQL server during query 甚至以root用户身份登录。 最初,我有一个无法重新创建的损坏的表,因此我决定重新创建该数据库。我每个表都有innodb文件,不确定是否重要。 如何删除该数据库?
8 mysql  innodb 

3
MySQL缓慢使用内存,直到它开始使用交换
我正在运行1gb的RAM机架数据库服务器。由于某种原因,在大约2天的时间内,内存使用量从使用很少的交换空间变为使用100mb。如果我不重新启动sql,它将继续使用更多交换。(我的my.cnf文件如下所示,内存使用情况如下所示) 背景知识:我大约有50个活动数据库,这些数据库具有与使用INNODB的表相同的架构。我有几个使用MyISAM的流量很少的数据库。 在INNODB表上,我不使用持久连接。我还具有创建临时表的报告功能。(这可能会占用大量资源,但不会经常发生) 我正在使用CENTOS 6.3和mysql 5.5.28-log 即使我使用交换,性能仍然相当不错。我只是担心,如果我每隔几天不重新启动,就会遇到问题。 这是我大约两天的free -m日志:(第一条记录是在mysql重新启动之后) 12/26 2:08 PM EST total used free shared buffers cached Mem: 992 697 295 0 74 362 -/+ buffers/cache: 260 732 Swap: 976 15 961 12/26 4:10 PM EST [root@php-pos-db ~]# free -m total used free shared buffers cached Mem: 992 …

2
同时创建许多mysql临时表是否不好?
我需要进行大量的统计分析,才能为用户提供一些数据。目前,我从mysql捕获数据并通过PHP数组处理它们。但是,mysql临时表要好得多(显然比PHP数组更高效和更快;显然是由于它们的机制)。 我的解决方案是在每次导入和处理数据的请求(即连接)上形成一个临时表。但是,我不确定同时创建多个临时表是否有缺点? 这会给mysql服务器造成问题吗?或者我可以在大量同时请求中将其用作PHP数组的替代方法?

4
InnoDB插入速度更快
我是与Mondrian OLAP一起研究OLAP的研究生。所以我想在初始加载时更快地将数据插入InnoDB(MySQL 5.5)。在这种环境下,唯一的用户就是我,因此我认为可以允许对插入速度进行更多宽松的设置。目前,我正在使用以下技术。 禁用 log_bin 使能 skip-innodb-doublewrite 设置transaction_isolation为READ-COMMITTED或READ-UNCOMMITTED(实际上READ-COMMITED) 设置innodb_flush_log_at_trx_commit为0或2(实际上0) 设置innodb_buffer_pool_size为5GB(系统具有6GB RAM) 还有其他技术可以在InnoDB上更快地插入吗?而我不得不修改innodb_io_read_thread和innodb_io_write_thread?如果您需要更多信息,请告诉我。

1
使用MySQL源命令执行SQL文件时禁用控制台输出
我首先启动MySQL命令行工具: mysql --user=myusername --password=mypassword --silent --force -b 最后一个-b选项用于禁用错误提示音。 然后我选择一个数据库: use Mydatabasename; 然后我执行SQL形式的文件,如下所示: source c:\x\y\z\myfile.sql 那是事情进展缓慢的时候。我之前已经执行了文件的一部分,因此控制台中充满了重复的行错误,从而严重降低了执行速度。我每秒执行5-10条语句。没有重复的行,代码每5秒执行数万条语句(30k +)。 我需要执行此操作,因为文件很大,并且无法一次执行。
8 mysql  windows 

3
MySQL单表静态和动态数据透视
我有一个看起来像这样的表: +----------------------------------------+ |Name | kode | jum | +----------------------------------------+ | aman |kode1 | 2 | | aman |kode2 | 1 | | jhon |kode1 | 4 | | amir |kode2 | 4 | +--------------------+-----------+-------+ 如何使用MySQL进行这样的视图? kode1 kode2 count aman 2 1 3 jhon 0 4 4 amir 0 4 4
8 mysql  pivot 

1
如何将大型MySQL数据库迁移到RDS?
我已经研究了一下。我意识到在Stack Overflow上也有类似的问题,Amazon本身也提供了一个有用的文档,在此提供了建议: http://aws.amazon.com/articles/2933 我的担忧如下: 亚马逊建议mysqldump仅用于“少量数据”,它们定义为小于1GB。我打算迁移的数据库超过20GB。 mysqldump但是,有一件很有趣的事,就是它具有--single-transaction标志,这使我可以确保数据库状态与单个时间点一致。 对于大量数据,Amazon的建议是将数据库导出到平面(例如CSV)文件中,然后用于mysqlimport将其导入RDS。但是,我知道如何执行此操作的最好方法是通过SELECT ... INTO OUTFILE命令,该命令一次只操作一个表。当然,这样做的缺点是它不提供的一致性保证--single-transaction。 我想我可以通过暂时关闭整个数据库来确保一致性。但我想尽可能避免这种情况。 将大型(> 20GB)大数据库转换为平面文件以便可以使用的最佳方法是什么mysqlimport? 如果确实是SELECT ... INTO OUTFILE命令,那么如何导出数据库中的所有表(最好不必一次执行一个表)? 有什么好的方法可以确保所有这些方面的一致性?


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.