MySQL数据查找?

时间:2014-01-01 22:20:32

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

MySQL性能是一个庞大而复杂的主题。你可以找到很多关于这个主题的书籍,这里没有答案可以解决所有重要的问题。

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

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