问题标签 [myisam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2463 浏览

mysql - 虚拟主机不支持 InnoDB。现在怎么办?

我在笔记本电脑上开发了一个小型 WAMP Web 应用程序,其中运行了一个 mySQL 实例,我选择 InnoDB 作为我的数据库引擎。经过几个星期的开发,我想将它提供给公众,发现我的虚拟主机提供的数据库服务器不支持 InnoDB,只支持 MyISAM。

从我笔记本电脑上的 innoDB 模式生成的 create-and-populate 脚本在针对实时数据库执行时,可以设法创建单独的 TABLES,但在创建 VIEW 时遇到问题。MyISAM 不支持视图吗?我知道外键不是。这就是我选择 InnoDB 的原因......我有什么机会让我的 innoDB 模式设计与 myISAM 一起工作?

是否有任何直接的方法可以将整个模式从一个存储引擎转换到另一个?我应该寻找另一个提供支持 innoDB 的 mysql 数据库的网络主机吗?

0 投票
4 回答
331 浏览

mysql - 为什么这个查询很慢?我应该在这里使用 MyISAM 而不是 InnoDB 吗?

在我的慢查询日志中,我每小时大约会收到 5 次这些:

record_lock 表当前使用 InnoDB,它现在有不到十几个记录。

我们的系统中有几千个活跃用户。每次他们编辑一条记录时,我们都会插入到这个表中。在系统中任何地方的每个页面加载时,我们 1)从表中选择以查看当前用户是否有任何锁,以及 2)如果有用户的任何记录,则对该表运行 DELETE 查询,引用WHERE 子句中的表的主键。

这是表的架构:

0 投票
1 回答
2711 浏览

sql - 使用 IN 运算符优化 MySQL 查询

我有一个 MySQL 数据库,其中包含一个相当大的产品表。他们每个人都有自己的 id 和 categoryId 字段,其中有一个属于该产品的类别 id。现在我有一个查询,可以从给定类别中提取产品,例如:

当然,有一个 WHERE 子句和 ORDER BY 排序,但不是在这件事上。假设这些产品是 250k,每天访问量超过 100k。在这种情况下,在表slow_log 中注册这些查询的权重具有较大的生成时间。

您对如何优化给定问题有任何想法吗?

表引擎是 MyISAM。

0 投票
3 回答
1340 浏览

java - InnoDB 和 MyISAM 有什么区别

InnoDB 和 MyISAM 有什么区别。我可以去哪一个?一个提供而另一个不提供的任何区域?这两种类型中的任何一种都存在技术限制吗?请帮我为我的项目选择合适的类型?

0 投票
2 回答
193 浏览

sql - SQL 内部连接:数据库卡住

几天前我发布了这个问题,但我没有准确解释我想要什么。我再次提出更好的问题:为了澄清我的问题,我添加了一些新信息:

我有一个带有 MyISAM 表的 MySQL 数据库。两个相关的表是:

(有关表格的完整信息,请参阅屏幕截图产品(屏幕截图)和屏幕截图订单_产品(屏幕截图))

现在我想要的是: - 获取所有订购了 Manufacturer_id = 1 产品的订单。以及该订单产品的产品名称(制造商 ID = 1)。按订单分组。

到目前为止我所做的是:

p.orders_id > 10000 用于测试仅获得几个 order_id。但是这个查询即使有效也需要很长时间才能执行。两次sql server卡住了。错误在哪里?

0 投票
2 回答
3969 浏览

mysql - 外键与分区

由于分区的 mySQL 数据库目前不支持外键,我想听听一些优点和缺点,用于读取繁重的应用程序,每个表将处理大约 1-400 000 行。不幸的是,我在这方面还没有足够的经验来自己做出结论......

非常感谢!

参考:

分区时如何处理外键

对具有外键的 mySQL 表进行分区?

0 投票
2 回答
3726 浏览

mysql - mysql 从多个选择查询中插入数据

我有什么工作,这是我需要改进的:

这只是收到电子邮件,现在这很好,但还不够,因为我有几个不同的 form_key 值需要导入到不同的列中,我知道我可以通过 php 使用 foreach 循环和更新来做到这一点,但这需要纯粹在mysql中完成。

那么我该怎么做:insert form_data(id,data,email,name,surname,etc) Select [..],Select [..]....

数据以最荒谬的方式存储在一个表格中,在一个单元格中,另一个单元格告诉实际数据是什么: http: //drp.ly/Jhx3J(屏幕截图)

请帮忙

0 投票
4 回答
1110 浏览

mysql - 使用 MyISAM 表进行 Rails 单元测试

我有一个应用程序需要在几个表上使用 MyISAM,但其余的都是传统的 InnoDB 类型。应用程序本身并不关心应用于这些记录的事务,但性能是一个问题。

但是,Rails 测试环境假定使用的引擎是事务性的,因此当从 schema.rb 生成测试数据库时,它会使用相同的引擎导入。是否可以以简单的方式覆盖此行为?

我采取了一种可怕的技巧,通过将其附加到 test_helper.rb 来确保表是正确的类型:

有没有更好的方法让 MyISAM 支持的模型可测试?

0 投票
5 回答
15052 浏览

mysql - innoDB 表的 MySQL 全文搜索解决方法

我正在设计一个使用 MySQL 作为其后端数据库的内部 Web 应用程序。数据的完整性至关重要,因此我将innoDB引擎用于其外键约束功能。

我想对一种记录进行全文搜索,而 innoDB 表本身不支持这种搜索。MyISAM由于缺乏外键支持以及它们的锁定是按表而不是按行的事实,我不愿意移至表。

创建一个我需要使用 MyISAM 引擎搜索的记录的镜像表并将其用于全文搜索是否是不好的做法?这样,我只是在搜索数据的副本,如果该数据发生任何事情,这没什么大不了的,因为它总是可以重新创建。

或者这是一种应该避免的尴尬方式?

谢谢。

0 投票
3 回答
293 浏览

mysql - Mysql数据库关于大列的问题

我有一个有 100.000 行的表,很快它就会翻倍。数据库的大小目前为 5 GB,其中大部分位于一个特定列,即 PDF 文件的文本列。我们预计几个月后会有 20-30 GB 或 50 GB 的数据库,并且该系统将被频繁使用。

我有几个关于这个设置的问题

1-)我们在每个表上都使用innodb,包括用户表等。在这个表上使用myisam更好吗,我们存储PDF文件的文本版本?(从内存使用/性能角度)

2-) 我们使用 Sphinx 进行搜索,但是必须检索数据以突出显示。突出显示是通过 sphinx API 完成的,但我们仍然需要检索 10 行才能再次将其发送到 Sphinx。这 10 行可能会分配 50 mb 的内存,这是相当大的。所以我计划在数据库中将这些 PDF 文件分成 5 页的块,所以这 100.000 行将是大约 3-4 百万行,几个月后,我们将有 1000 万行,而不是 300.000-350.000 行行来存储这些 PDF 文件的文本版本。但是,我们将检索较少的页面,因此再次检索 400 页而不是发送 Sphinx 进行突出显示,我们可以检索 5 个页面,这将对性能产生很大影响。目前,当我们搜索一个词并检索超过 100 页的 PDF 文件时,执行时间为 0.3-0.35 秒,

你认为,这是一个很好的权衡吗?我们将拥有数百万行而不是 100k-200k 行,但它会节省内存并提高性能。这是解决这个问题的好方法吗?您对如何克服这个问题有任何想法吗?

数据的文本版本仅用于索引和突出显示。所以,我们非常灵活。

编辑:我们将 pdf 文件存储在我们的云中,但是对于搜索突出显示,我们需要检索 pdf 文件的文本版本并将其提供给 Sphinx,然后 Sphinx 返回突出显示的 256 个字符的文本。要索引 pdf 文件,我们需要将它们插入数据库,因为它们还有其他元数据,例如描述标签和标题,我们需要将它们链接到搜索引擎。如果我们从文件服务器索引 txt 文件或 pdf 文件,则无法从 db 中获取其他数据并将它们链接到搜索引擎上的那些 txt 文件。因此,我们仍然将 PDF 文件存储在我们的云中,但文本版本也必须在我们的数据库中,以便索引它们的标签标题和描述。它们是不同的表,但它也必须在数据库中。

谢谢,