问题标签 [database-optimization]
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.
mysql - 带有每日电子邮件通知的“已保存搜索”功能的最佳数据结构是什么?
该功能的工作方式如下:
- 网站有用户,用户可以保存任意数量的搜索(例如纽约的工作、PHP 工作等)。涉及到很多参数,所以这几乎不可能索引(我使用的是 MySQL)。
- 每天都有许多新工作发布到网站上
- 每 24 小时,我们都会获取过去 24 小时内发布的职位,并将它们与现有的职位搜索进行匹配,然后通过电子邮件向用户发送有关匹配职位的信息。
这里的问题是它是一个高流量的网站,即使是乐观的情况(很少有新的职位发布),运行这个搜索查询也需要 10 分钟。这个问题有没有经典的解决方案?我们一直在使用 Sphinx 搜索密集的地方,但我不能在这里应用它,因为 Sphinx 不会返回所有结果,它最终会切断它们。现在我能想到的最好的事情是拥有 search.matched_job_ids 列,然后每当发布职位时,将其与所有现有搜索进行匹配,并将职位 ID 记录在匹配搜索的matched_job_ids 列中。在一天结束时,我们将向用户发送电子邮件并截断该列。这在技术上并没有提供任何性能改进,而是通过执行许多较小的搜索查询而不是一个大查询来分散负载。
mysql - MySQL在表中选择大量数据的性能
我有一个关于 MySQL 优化的问题。假设有一个market_transition
包含 1,000,000 行数据的表。SELECT * FROM market_transition WHERE end_time >= (SOME TIMESTAMP)
如果我这样做并且返回 25,000 ,是否有任何性能问题?换句话说,如果选择语句必须返回大量数据,是否存在性能问题?如果是,如何优化?感谢您的帮助。
php - 如何将一个 Doctrine 实体保存到两个数据库表(MySQL 优化所需)
在我的数据库中,我有一个 tablefile
和一个 table file_content
。该file
表存储文件的元数据,例如name
,mime
等等。file_content
存储带有文件内容的 blob 。仅出于性能原因,我不会将 blob 与元数据存储在同一个表中。
对于我的项目的“版本 2”,我正在研究 Doctrine (2.3)。对我来说,“文件”似乎是一个实体,具有 , , 等属性name
,mime
应该extension
像content
这样使用:
这种行为可能吗?对我来说,为实际上只是一个实体的东西创建两个实体是没有意义的。我在文档中找不到任何关于它的内容,我在一个 2 岁的主题中读到,在 Doctrine 2.1 中是不可能的:Doctrine 2.1 - Map entity to multiple tables
有人建议如何正确处理这个问题?我是 Doctrine 的新手,并且一直在玩弄它,看看它是否是我项目的正确选择。谢谢。
mysql - 搜索查询优化
我正在尝试创建一个搜索查询来开发一个学校图书馆,该图书馆将以低成本从数据库中检索数据。我的表里面是callNumber,author,title和year。我想从 callNumber、作者和标题中搜索。
我使用了上面的查询,返回数据不可靠。优化此查询的任何建议或建议,无论如何。谢谢
php - 优化大型且逐渐增加的数据库
我即将创建一个由大型数据库组成的 PHP Web 项目。数据库将是 MYSQL,每天将存储超过 30000 条记录。为了优化数据库,我想使用 MEMCACHED 库。我是走正确的路还是可以使用其他替代方法来克服数据优化问题。我只想提供更快的检索和插入。有人可以告诉我应该使用哪种工具以及如何使用,因为数据将以更高的速度逐渐增加?我也应该使用对象关系映射概念吗?
mysql - 在数据库中引用外键的更好方法
您能建议数据库优化的最佳实践吗?这是我的数据库架构,
在这个模式中,我有四种用户组,即超级管理员、公司用户、代理用户和最终用户。
推荐每个实体(公司、代理)的用户的最佳方式是什么?
我有两个选择
A. users 表中的外键为 company_id 和 agent_id
B.公司和代理表中的外键为user_id
我使用 mysql 作为数据库并使用级联引用。当我删除公司/代理时,关联用户会根据选项 A 自动删除。但如果使用选项 BI,则必须运行第二个查询以删除公司/代理的关联用户。所以你有什么建议???
更新:忘了提到儿童用户。公司/代理的用户可以有子用户,由 users 表中的 parent_id 引用。
mysql - 有没有办法计算在 MySQL 中“等待查询缓存”所花费的时间?
作为优化的一部分,我试图确定在waiting for query cache
step 中花费了多少时间。是否有可能获得这样的汇总值?
mysql - mysql数据库中的性能问题全索引扫描
我有一个带有名为 QuizMatches 的表的数据库。该表具有以下结构:
该表中有大量行,并且被多个客户端大量使用,尤其是执行如下查询:
主要问题似乎是数据库执行了完整的索引扫描。我尝试过使用不同的索引组合,但没有成功。
如果我在上面的 SELECT 查询上运行 EXPLAIN,我会收到以下信息:
有没有办法像上面的例子一样针对这个数据库表优化 SELECTS?
sql - SQLite: What is the execution order of conditions in a query with an indexed column?
In SQL, when a query is filtered by multiple conditions a simple optimization is to list more restrictive conditions before less restrictive ones, because the conditions are evaluated in first-to-last order.
Question: in SQLite, if a particular column is indexed, does SQLite evaluate the condition on the indexed column first, even if it is listed after other conditions? For instance, if col3
is indexed but the other columns are not, will SQLite evaluate the 3rd condition first as an optimization, or will it always evaluate in the order the conditions appear in the query as it is written?
mysql - 视图的索引字段是否会提高 MySQL 的性能?
向视图中的表添加索引也可以提高性能。假设我们有以下表格:
车
- 身份证号(PK)
- 模型
- 所有者
轮胎
- 身份证号(PK)
- 车牌号
- 尺寸
CAR_DETAILS(查看)
- 车牌号
- 所有者
- 模型
- 轮胎尺寸
视图在 CAR.ID=TYRES.CarID 上加入。现在假设执行以下查询:SELECT model, tyreSize FROM CAR_DETAILS WHERE tyreSize=19; 如果您在索引字段上查询视图,TIRES 上的索引大小是否会使您受益?