【问题标题】:MySQL data lookup?MySQL数据查找?
【发布时间】:2014-01-19 08:48:18
【问题描述】:

我是 MySQL 的新手,但我在 Java 中的 OOP 方面有一些经验。当您在内存中有一个“数据库”时(例如在 Java 中编程时),查找速度取决于它是否以链表、哈希图等形式存储。MySQL 数据库存储在硬盘上,因为它是一份文件。在这种情况下,查找的运行时间是多少?有没有办法像数据在内存中一样,对硬盘中的项目进行持续时间访问?这取决于它是硬盘还是SSD?

谢谢!

【问题讨论】:

  • 主要依赖索引
  • 还取决于架构和查询。恒定时间往往非常罕见。对数时间更常见。
  • 您是在服务器配置方面还是在数据库设计方面寻求答案?

标签: java mysql memory big-o hard-drive


【解决方案1】:

MySQL 性能是一个大而复杂的话题。您可以找到很多关于该主题的书籍,但这里没有任何答案可以指望触及所有重要问题。

从数据库设计的角度来看,主要步骤(不一定按顺序)是设计一个好的架构,定义正确类型的索引以支持您期望处理的查询,为每个表选择正确的引擎,并自行设计查询以获得最佳性能。 MySQL Query Analyzer 是解决这些问题的工具,EXPLAIN 语句也是如此。

在服务器配置方面,需要进行大量调整以提高性能。正如 MySQL 手册主题Estimating Query Performance 所描述的,性能的基本单位是磁盘查找,理论上这是行数中的 log N。但是,底层操作系统和 MySQL 服务器都可能会做很多缓存,这会使实际性能在实践中增长得更慢(更不用说绝对速度更快)。按照上面页面中的链接,在 Web 上搜索一些服务器配置指南,和/或阅读一两本书以深入了解如何使用 MySQL 提供的所有与性能相关的参数。

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多