我有以下架构表: CREATE TABLE `tblsomething` ( `something_id` int(11) NOT NULL AUTO_INCREMENT, … PRIMARY KEY (`something_id`) ) ENGINE=InnoDB AUTO_INCREMENT=144620955 我需要删除自动增量。 所以我在想: ALTER TABLE tblsomething MODIFY something_id int NOT NULL; 但是MySQL的这个部分让我担心: 在大多数情况下,ALTER TABLE通过创build原始表的临时副本来工作。 对副本进行更改,然后删除原始表,并重命名新的表。 在执行ALTER TABLE时,原始表可以被其他会话读取。 对表进行更新和写入操作将停止,直到新表准备就绪,然后自动redirect到新表而不会有任何失败的更新。 那么实际上下降自动增量是这些情况之一吗? 会锁住我的桌子吗?
我已经对庞大的数据库(数亿条logging)中的许多表执行了许多不同的DELETE查询。 什么会更快 – 针对每个修改表运行OPTIMIZE TABLE。 或者只是为了mysqldump进入文件,然后从文件恢复回来? 认为这将是平等的。 只是mysqldump | MySQL会更快;)
我在CentOS中有一个在MySQL 5.0.45上运行的InnoDB表。 更糟糕的是,它们都在虚拟机中运行。 有多个表格有很容易超过200万条logging的概率。 我注意到,从900K到1M纪录大关开始DB性能开始下降。 我有足够的权力来为未来作出一切改变,以便在这种情况下尽可能地保持这一点。 我应该使用MyIsam? 只有less数指标,我最担心的是写好performance。 将数据写入表的程序以每个表大约250个请求为一组进行批处理,并以每个表为基础执行它们以帮助解决问题。 我已经包含了一个较大的表的create table语句,是的,这是一个非常宽的表 – 我明白了。 我试图尽可能缩小列数,同时仍然能够可靠地容纳进入的数据。 编辑: 如果程序在运行过程中碰到了风扇,程序确实会使用事务来回滚这些变化,但是它基本上只是将数据抽入数据库的风格。 一个8小时的运行可以很容易地把400K线放在这个EACH表中。 这个表格是25个相似大小的指标之一。 它们全部通过LINE和RUN_ID进行查询。 阅读performance – 我不是特别担心。 我正在尽可能快地写入。 CREATE TABLE IF NOT EXISTS `TMD_INDATA_INVOICE` ( `ID` int(11) NOT NULL auto_increment, `LINE` int(11) NOT NULL, `RUN_ID` int(11) NOT NULL, `INDATA_INVOICE_ALLOCATION_GROUP_NAME` varchar(128) default NULL, `INDATA_INVOICE_ALLOCATION_GROUP_OWNER` varchar(128) default NULL, `INDATA_INVOICE_ALLOCATION_NAME` varchar(128) default NULL, […]
TL; DR – 与InnoDB有一些基于IO的问题。 在我签署表格以申请更多硬件之前,请先看看是否同意我的评估 为一个客户端工作,我inheritance了一个大的InnoDB MySQL数据库服务器。 根据Information_Schema,所有表(大约180个模式)的数据大小约为34.9GB,总大小约为38GB。 它位于运行心跳和DRBD(主动/被动)的Xen DomU(Debian)上,通过gigibit交叉同步data_dir分区并提供故障转移。 注:Web服务器,caching服务器和数据库服务器都是位于两台服务器上的Xen虚拟服务器,以实现冗余和故障转移。 总数据大小由存储在数据库中的大约25GB BLOB数据(图像,video,file upload等)组成,以允许多个前端Web服务器将这些文件caching在其本地文件系统上。 这些服务器上的caching大概平均每周刷新10次。 其余的数据(大约9GB)是经常更新的实际内容。 在前端有多个Web服务器,还有坐在它们前面的静态文件caching。 networking服务器仍然每天大约有50万次点击。 Web服务器只有在数据库在IO上等待时才被加载,并且在这种情况发生之前似乎能够处理大量的查询和连接。 该应用程序是一个名为eZ Publish的基于PHP的CMS。 我们在这个设置中托pipe了大约90个站点。 InnoTop每天显示约4000万个查询。 平均大约500 qps。 数据库服务器有2个CPU,一个很less使用,运行32Bit内核,并有2GB的内存。 InnoDB缓冲池已经分配了512MB。 我知道这并不多。 服务器没有更多的免费。 根据下面的输出和阅读在线博客和本书,我得出结论,服务器严重缺乏资源,如果我们有足够的内存来存储经常访问的9GB数据(如果不是所有的35GB的数据)和/或至less10GB光纤通道复制更快的磁盘。 这个评估看起来是否准确? 有什么设置可以在这里改变,可以带来任何性能上的好处吗? 〜$ vmstat 1 10 procs ———–memory———- —swap– —–io—- -system– —-cpu—- rb swpd free buff cache si so bi bo in cs us sy […]
我的服务器不得不在昨天重新安装,所以他们更换了硬盘,并通过USB连接了旧的。 我抓住数据库文件(/ var / lib / mysql)并下载它们,然后删除本地testing服务器的所有数据库文件,并将其replace为来自我的活动服务器的数据库文件。 一开始一切正常,然后我注意到有几个表显示为“正在使用”。 我发现InnoDB工作不正常,最终发现修复是删除了ib_logfile0和ib_logfile2文件。 现在我的MySQL服务器将无法启动,我得到这些错误: 110716 10:19:04 mysqld started 110716 10:19:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 110716 10:19:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequence number in the ib_logfiles! […]
我需要改变一个164M行的MySQL innodb表中列的长度。 这里是我想要运行的脚本:ALTER TABLE SESSION_DECISION CHANGE COLUMN NAME NAME VARCHAR(255); 当我尝试运行alter query时,数据库搅动了一个小时,并没有完成任务。 访问系统的用户(需要写入表的用户)被locking。 这是一个现场系统,所以我结束了ctrl-c的请求,让用户访问该网站。 (这是在半夜 – 使用量很小,但我感到紧张)。 我在MySQL 5.0.77。 有关如何以最less的停机时间更改列的任何build议?
我一直在我的MySQL数据库(MyISAM和INNDOB)上运行mysqldump。 最近我想恢复数据库到另一台服务器,所以我创build了数据库并导入了转储文件。 那么我就是说IBD文件没有被创build。 我的印象是我所做的是备份,但在INNODB的情况下,似乎我还要做/ var / lib / mysql / / .ibd的备份 – 对吧? 如果是这样的话,那么如果我还需要备份IBD文件,dumpfile又有什么意义呢? 我相信我错过了显而易见的…
如何在MySQL / InnoDB主从asynchronous复制设置中执行崩溃恢复? 特别: 如果一个从机崩溃,我把它重新启动后,如何使它与主机同步? 如果主人崩溃,奴隶将成为主人。 如何使新的主站与其他从站同步? 当原来的主人被带回时,我如何与新的主人同步? 由于复制是asynchronous的,因此在发生崩溃之前,已经提交给主服务器的事务可能无法离开主服务器。 所以原来的主人和奴隶之间可能会有不一致,其中之一就会成为新的主人。 同样,被提升为新主人的奴隶在所有奴隶之间可能没有最新的交易。 所以新的主人可以“落后”他的一个奴隶。 我如何解决所有这些潜在的不一致? 任何帮助完成这些任务的工具? 谢谢。
当我做简单的select或插入它说 – 未知的表引擎InnoDB 它几天前工作正常,突然出现了什么问题?
我经常看到,Apache被用作Web服务器,并且在rails,ruby等等被使用。 因此,所有使用unix操作系统的大型社交networking公司都是如此。 因为我也想开发一个小应用程序(不是那么多的用户,呵呵),我也想知道最好的方法,以及我需要寻找什么点来获得这种应用程序的最佳的Linux发行版。 让我们以twitter为例。 为什么selecttwitter 因为它很容易从graphics用户界面,但它需要处理数以千计的查询每秒,caching他们等。 所以,请有人告诉我在select最好的linux发行版时需要注意的地方。 内核中还经常有一个定制? 最后一个问题:Mysql – > MyISAM或者InnoDB? 非常非常感谢你! 祝你今天愉快。 再见,安德烈