Tag: innodb

我如何处理这个在Django的竞争条件?

这段代码应该得到或创build一个对象,并在必要时进行更新。 该代码正在生产中使用的网站上。 在某些情况下(当数据库正忙时),它会抛出exception“DoesNotExist:MyObj匹配查询不存在”。 # Model: class MyObj(models.Model): thing = models.ForeignKey(Thing) owner = models.ForeignKey(User) state = models.BooleanField() class Meta: unique_together = (('thing', 'owner'),) # Update or create myobj @transaction.commit_on_success def create_or_update_myobj(owner, thing, state) try: myobj, created = MyObj.objects.get_or_create(owner=user,thing=thing) except IntegrityError: myobj = MyObj.objects.get(owner=user,thing=thing) # Will sometimes throw "DoesNotExist: MyObj matching query does not exist" myobj.state = […]

MyISAM和InnoDB有什么区别?

我知道这个问题以前曾经被问过,但大部分时间都是针对一个特定的数据库或表格提出的。 我无法在这个网站上find答案,描述这两个引擎及其差异,而不考虑某个特定的数据库。 我希望能够在devise表格或数据库方面做出更明智的决定,所以我正在寻找关于两个存储引擎之间差异的全面答案。 MyISAM和InnoDB之间有什么区别,当我试图在一个或另一个之间做出决定时,我应该寻找什么?

全文searchInnoDB

我正在开发一个高容量的Web应用程序,其中一部分是讨论post的MySQL数据库,需要顺利地增长到20M +行。 我原本打算使用MyISAM作为表格(用于内置的全文searchfunction ),但是由于一次写入操作而使整个表格被locking的想法使我快门。 行级锁更有意义(更不用说InnoDB在处理大型表时的其他速度优势了)。 所以,因为这个原因,我决定使用InnoDB。 问题是… InnoDB没有内置的全文searchfunction。 我应该使用第三方search系统吗? 像Lucene(C ++) / 狮身人面像 ? 你们有没有数据库忍者有任何build议/指导? LinkedIn的zoie (基于Lucene)目前看起来是最好的select …是围绕实时function而build立的(这对于我的应用程序来说是相当重要的)。我有点犹豫,没有一点洞察力就犯下了…… (仅供参考:将使用高内存钻台上的EC2,使用PHP来为前端服务)

如何查看表或列的所有外键?

在MySQL中,如何获得指向特定表的所有外键约束的列表? 一个特定的列? 这与Oracle的问题是一样的,但是对于MySQL来说。

Howto:清理mysql InnoDB存储引擎?

是否有可能清理mysql的innodb存储引擎,所以它不存储从删除的表中的数据? 或者我每次都必须重build一个新的数据库?

INT和VARCHAR主键之间是否存在真正的性能差异?

在使用INT和VARCHAR作为MySQL的主键之间是否存在可衡量的性能差异? 我想使用VARCHAR作为引用列表的主键(比如美国,国家代码),同事不会把INT AUTO_INCREMENT作为所有表的主键。 我的论点, 这里详细说明的是,INT和VARCHAR之间的性能差异是可以忽略的,因为每个INT外键引用都需要一个JOIN来表示引用,VARCHAR键将直接显示信息。 那么,有没有人有这个特定用例的经验和与之相关的性能问题?

如何debugging在MySQL上超出locking等待超时?

在我的生产错误日志中偶尔会看到: SQLSTATE [HY000]:一般错误:1205锁超时超时; 尝试重新启动事务 我知道当时哪个查询试图访问数据库,但是有什么方法可以找出哪个查询在那个时刻locking了?

如何快速重命名MySQL数据库(更改模式名称)?

MySQL的MySQL手册涵盖了这一点。 通常我只是转储数据库并重新导入一个新的名字。 对于非常大的数据库,这不是一个选项。 显然RENAME {DATABASE | SCHEMA} db_name TO new_db_name; RENAME {DATABASE | SCHEMA} db_name TO new_db_name; 做坏事,只存在于less数几个版本中,总体上是一个坏主意 。 这需要与InnoDB协同工作,它存储的内容与MyISAM非常不同。

MyISAM与InnoDB

我正在处理一个涉及很多数据库写入的项目,我会说( 70%的插入和30%的读取 )。 这个比例还将包括我认为是一个阅读和一个写作的更新。 读取可能很脏(例如,在阅读时我不需要100%准确的信息)。 有关任务将每小时进行超过100万次的数据库事务。 我在网上读了一大堆关于MyISAM和InnoDB之间差异的东西,MyISAM似乎是我将用于这个任务的特定数据库/表的显而易见的select。 从我看来,InnoDB是好的,如果事务是需要的,因为行级locking是支持的。 有没有人有这种types的负载(或更高)的经验? MyISAM是否要走?

MySQL外键约束,级联删除

我想使用外键来保持完整性并避免孤儿(我已经使用innoDB)。 如何创建一个SQL语句DELETE ON CASCADE? 如果我删除一个类别,那么我如何确保它不会删除也与其他类别相关的产品。 数据透视表“categories_products”在另外两个表之间创建了一个多对多的关系。 categories – id (INT) – name (VARCHAR 255) products – id – name – price categories_products – categories_id – products_id