Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调优MySQL数据库_Mysql_Database - Fatal编程技术网

调优MySQL数据库

调优MySQL数据库,mysql,database,Mysql,Database,我有一个MySQL数据库,它运行在一个专用的Ubuntu服务器上,有2GB内存和500GB硬盘。如果有人能帮助微调数据库以提高性能,我将不胜感激。增强需要影响数据库的CRUD任务,包括过程调用和计划事件的性能 我在网上搜索过这方面的信息,在各种网站上找到了各种机制、工具等来完成这项工作。但我需要知道在不使用任何第三方工具或软件的情况下提升MySQL数据库本身性能(例如:SQL查询的执行时间等)的正确方法。下面列出了我正在使用的数据库配置 MySQL version: 5.5 Used stora

我有一个MySQL数据库,它运行在一个专用的Ubuntu服务器上,有2GB内存和500GB硬盘。如果有人能帮助微调数据库以提高性能,我将不胜感激。增强需要影响数据库的CRUD任务,包括过程调用和计划事件的性能

我在网上搜索过这方面的信息,在各种网站上找到了各种机制、工具等来完成这项工作。但我需要知道在不使用任何第三方工具或软件的情况下提升MySQL数据库本身性能(例如:SQL查询的执行时间等)的正确方法。下面列出了我正在使用的数据库配置

MySQL version: 5.5
Used storage engine: MyISAM
Operating system: Ubuntu 12
Hard disk capacity: 500GB
RAM: 2GB
Other: The database consists of Tables, Indexes, Stored Procedures, Scheduled Events and Views

对于数据的细节、数据的分布、使用的工作负载类型、读写比、查询的种类、查询的复杂性等等,您都没有说过。这是调优过程的一个重要部分,原因很简单:

调整特定于您的数据和工作负载。

开发MySQL等数据库平台的人非常注意确保默认设置对大多数用户来说足够好。如果有一些简单的方法来提高数据库的性能,他们已经在工厂里做了

另一方面,制作第三方工具的人编写代码读取您的数据和日志,以了解有关表、表内容和查询的信息,这些代码根据您的数据和工作负载对调优做出最佳估计。它们不是完美的,但如果你不知道怎么做的话,它们肯定比手工操作要好

想象一下调整数据库就像调整吉他一样:你从一个你想要的想法开始(标准调整?Drop D?DADGAD?),然后你一次对一根弦做一些小的调整,根据你想要的结果来测量它。一旦你获得了该字符串的最佳结果,你就可以进入下一个字符串,并在那里做一些小的更改,等等。当你到达最后一个字符串时,你可能已经调整了整把吉他的平衡,所以你可能不得不从一开始就重新检查设置,进行微小的增量更改,直到整把吉他都唱得很完美

请阅读,开始使用MySQL 5.5中最重要的“字符串”。有很多,但没有一个是特别困难的

与此相反,将服务器从默认设置中调整可能会使性能提高5-10%。您最好花时间查看数据库设计、数据类型和正在使用的索引。通过这样做,您通常可以使性能提高50%-100%。

您应该会发现对初学者有帮助

这将向您显示一些关键的常规默认值,并允许您 输入您自己的值,如
显示全局变量
计算MySQL的最大内存使用量

这只会触及表面,而且会很有启发性


没有简单的答案。

谢谢你的提示@Jeremy。如果我说的是数据库的数据分布,它如下所示数据库与规范化和非规范化的表是相关的。具有一对一、一对多、多对一和多对多相关数据。-有82个表(可扩展)。-我已将此数据库连接到web应用程序。因此,将同时发生数据库调用。-大多数查询由复杂的关系组成,这些关系包括内部联接和外部联接、嵌套的select语句、循环(在存储过程中)、条件、字符编码、类型转换等。