草庐IT

mysql - MySQL PBXT与InnoDB

我想知道新的PBXT引擎与旧的InnoDB的优缺点是什么?在哪里可以找到功能列表以及可能比较这两个数据库引擎的一些基准? 最佳答案 这是最近一篇比较两者的文章:http://www.linux-mag.com/cache/7462/1.html 关于mysql-MySQLPBXT与InnoDB,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1260324/

mysql - 大型 mysql (innodb) 数据库 - 查询性能慢、表消失和恢复备份时间长

我有一个数据库,其中3个表的行数均超过2000万。我使用GUID作为主键(不幸的是)。现在我们的数据库约为20GB,并且每月增长5GB。对数据库进行完整备份大约需要2小时,在具有4GBRAM的机器上恢复大约需要30小时。我们曾经让数据库中的所有表都消失了。同一台服务器上的其他mysql数据库都很好,除了一个-只有数据消失,留下空表。选择查询(在许多慢速查询中)-在一个20m的表中获取日期列的最大值需要大约5分钟才能返回结果。此查询使用频率很高。我在寻找什么答案推荐的数据库设计更改提高选择查询性能的方法-2000万条记录的最大日期列其他查询的表现如何着手处理future的数据库增长感谢大

mysql - 将 MyISAM 转换为 InnoDB,其中表具有两列(复合)PK,其中之一是自动递增

我想将我们的一些MyISAM表转换为InnoDB,以便我可以利用外键支持。然而,大多数表使用双列(复合)主键设计,其中一个列是自动递增的(这样做是出于历史原因,同时也确保了自动递增列可以作为一种其他列值上下文中记录的增量键)我意识到我们需要取消多列主键才能使用自增和InnoDB。虽然我们有数千条记录,但这些记录与其他表有关系。有没有关于如何将这些表转换为InnoDB的提示?我想出的唯一方法是首先在每个表中添加一个新列,将其设置为唯一的自增主键,然后使用脚本更新从属表以指向新的(真正唯一的)主键.谢谢史蒂夫 最佳答案 在MySQL5.

mysql - 选择 ... 用于更新和 MAX()

此查询中的SELECT...FORUPDATE是否锁定此表中的行?表在InnoDB中,查询在事务中selectmax(id)fromtable1FORUPDATE我有这段代码,它似乎SELECT...FORUPDATE没有锁定行。 最佳答案 SELECTMAX(id)FROMtable1FORUPDATE-不锁定任何行,因为它实际上不扫描任何行。从表索引中检索所需的信息。如果您在查询前添加一个DESCRIBE,就会提示这一点,显示:#id,select_type,table,type,possible_keys,key,key_le

mysql innodb事务并发

我有3张table产品产品编号max_products_can_sellmax_products_can_sell_to_individual购买用户编号产品编号数量预订产品编号用户编号数量希望您了解结构。现在,当用户尝试购买产品时,我必须检查max_products_can_sell剩余的商品-(售出数量+保留数量)。如果商品可用,我必须将其存储在预订表中,直到他购买为止。(将通过此表的cron作业进行管理)现在实际的问题是,如何在这里处理并发问题。例如:钢笔产品只有1个。两个用户请求reserve.php。“a”用户请求reserve.php并且可用笔为1。但在插入之前,“b”用户

mysql - MySQL Innodb 中的悬空事务

假设我执行了如下SQL语句:starttransaction;insertintosomeTable(userId,amount)values(33,44);请注意,此语句末尾没有Commit或Rollback。我也没有要求启用自动提交的选项。dba如何检测这种未完成的事务?我试过使用“showinnodbstatus”,但它提供了太多信息。我试图找到未提交的事务并强制它们提交或回滚。谢谢。 最佳答案 Autocommit不会在这里帮助你,starttransaction覆盖它。一旦连接超时或客户端重新连接,悬空事务将回滚,以先发生

mysql - 从 Innodb 迁移到 NDB 的障碍和问题?

我有一个高度规范化和索引化的innodb数据库(使用外部sphinx服务器管理搜索),我正在考虑将其迁移到NDB以处理可能即将到来的大量流量。就我的研究和理解而言,这并不是一个过于困难的操作,因为我没有全文字段(最坏的情况是varchar(256))并且搜索无论如何都是在外部处理的。我确实意识到我的连接查询会降低很多,但是我通过使用memcached(也是外部的)缓存大多数查询来处理这个问题。在考虑此迁移时,还有什么我应该注意的吗?http://www.mysql.com/products/cluster/get-started.html#quickstart提供的入门文档使linux

mysql - 将 MySQL 数据库从 MyISAM 转换为 InnoDB

我必须将Mysql数据库从MyISAM转换为InnoDB。问题是现有的MyISAM数据库有很多不一致的数据,这会给InnoDB带来问题。到处都是无效的外键引用,所以在切换存储引擎的过程中,我必须清理数据库中的垃圾。是否有一些工具可以帮助我检测那些无效的fk引用,因为手动检查每个关系将是一项艰巨的工作?可以分享一下经验吗,最好的方法是什么。 最佳答案 RolandBouman几年前为此发布了一个工具。我过去用过它,发现它很有帮助。这是它的链接:http://forge.mysql.com/tools/tool.php?id=11

php - 奇怪的 MYSQL/PHP 错误 : inserts with now()+$i as timestamp occasionally inserts 0

我观察到这个奇怪的问题。用now()插入没问题,但是当向now()添加数字时,它有时会插入0。这看起来是随机的。这是查询mysql_query("INSERTINTOaction_data(user_id,value,create_time,site_id)VALUES(807809,20,now()+$i,409666)");表:ENGINE=InnoDBAUTO_INCREMENT=164865DEFAULTCHARSET=latin1mysql_版本+-------------------------+---------------------------------------

mysql - 数据库大于 RAM 的 MySQL 上的 "innodb_buffer_pool_size"

我有一台运行MySQL的Linux服务器,其中:-12GbRAM-4xIntel(R)Xeon(R)CPUE6510@1.73GHz-CentOSrelease6.3-MySQL5.1.61由于一些技术问题,我们不得不将服务器的RAM内存减少到8GB,目前我们还没有任何内存。现在,正因为如此,我们的服务器出现了很多性能问题。这是我们数据库的大小:+--------+--------------------+---------+--------+--------+------------+---------+|tables|table_schema|rows|data|idx|total