- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找有关可以处理大量数据的多语言 MySQL 数据库结构的建议。我们目前正在使用以下方法:
Articles <- Article_translations -> Languages
id id id
date language_id (fk) locale
category article_id (fk)
content
好吧,假设我们有大约 100,000 篇文章和 5 种语言......好吧......你明白问题所在了。数据越大,数据库越慢(这里只是一个猜测,但绝对必要的复杂 JOIN 查询可能不会是 O(log(n)),而是 O(n^2) 之类的东西)。
我们目前的解决方案是将 Article_translations 拆分为 [locale]_article_translations(例如 en_us_article_translation),在这种情况下,我们需要轻松同步这些表之间的结构。这是解决此问题的合适方法还是有更好的方法?如果这是一个好的解决方案,是否有什么东西可以帮助监视更改(仅结构,没有数据同步!)并同步这些结构?
最佳答案
你只对了一半,数据越大数据库越慢,但如果数据库设计不好,即使是小数据也会很慢。
我不能告诉你什么是最好的方法或最好的解决方案,记住你需要做很多事情才能找到“最好的解决方案”。我只能向您推荐一些可以帮助您的工具和技巧。
首先,检查你的索引,索引类型,不仅是PK和FK,你还需要看你需要哪种类型的索引,即,你需要文本索引吗?或哈希树??。
还要检查你的引擎,MyISAM 还是 InnoDB?你说你分表,查this post关于拆分。
此外,如果您避免使用'%word%'
之类的东西,您的查询也会更快。请记住,错误的查询会对响应时间产生巨大影响。
您可以使用 Show create table
或 Describe select ......
或 explain
来查看发生了什么,或使用命令 benchmark
查看您正在应用以改进它的函数的大概时间
一些用于 MySQL 的工具我会推荐您看一下这个程序,它将帮助您提高这部分性能。
Mysqlslap(它类似于基准测试,但您可以自定义更多结果)。
SysBench(测试 CPU 性能、I/O 性能、互斥锁争用、内存速度、数据库性能)。
Mysqltuner(您可以使用它分析一般统计信息、存储引擎统计信息、性能指标)。
mk-query-profiler(执行 SQL 语句分析)。
mysqldumpslow(很高兴知道女巫查询会导致问题)。
关于mysql - 海量数据的多语言MySQL数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402085/
“大规模”的微型 ORM 是否有处理继承的方法? robconery / massive 为 Massive 编写提供程序很难吗? 我需要非常接近 SQL Server 的东西。作为第一步,最好拦截
我编写了一个服务器可以使用的应用程序。此应用程序收集信息,并将其发送到服务器。每 10 秒执行一次。数据量取决于玩游戏的玩家,但让我们将其保持在大约 50 个服务器,每个服务器发送 100 条数据(每
我有一个表,其中包含 3 个字段(用户名、目标值、分数),由用户名 (~400,000) 和目标值 (~4000) 的完整交叉在外部生成,并计算出分数,导致总行数约为 16 亿. 我在这个表上的所有查
我们包括了这个 AndroidPdfViewer library支持在应用程序中查看 PDF 报告。它导致 APK 大小从 4.7Mb 大幅增加到 20.1Mb。 有没有办法减小这个尺寸。让我知道在哪
我在脑海中争论是否应该在 MySQL 中使用大量的多维数组或数据库。我正在为一个业务有很多产品的客户开发。在这个多维数组中,我将包括每个产品的产品标题、描述、图片链接和类别。 我的客户可能有 1000
我是一名优秀的程序员,十分优秀!