MySQL数据库优化下_MySQL
1.4 MySQL 基准套件
本章本来要包括MySQL基准套件(以及 crash-me)的技术描述的,但是至今还未写。现在,您可以通过查看MySQL发布源代码 `sql-bench' 目录下的代码以及结果有一个更好的想法。
基准套件就是想告诉用户执行什么样的SQL查询表现的更好或者更差。
请注意,这个基准是单线程的,因此它度量了操作执行的最少时间。我们未来打算增加多线程测试的基准套件。
想要使用基准套件,必备以下几个条件:
基准套件在MySQL的发布源代码中就有。可以去 http://dev.mysql.com/downloads/ 下载发布版或者使用现有开发代码树(详情请看"2.3.3 Installing from the Development Source Tree")。
基准脚本是用Perl写的,它用Perl的DBI模块来连接数据库,因此必须安装DBI模块。并且还需要每个要做测试的服务器上都有特定的BDB驱动程序。例如,为了测试MySQL、PostgreSQL和DB2,就必须安装 DBD::mysql, DBD::Pg 及 DBD::DB2 模块。详情请看"2.7 Perl Installation Note"。
取得MySQL的分发源代码后,就能在 `sql-bench' 目录下看到基准套件。想要运行这些基准测试,请先搭建好服务,然后进入 `sql-bench' 目录,执行 run-all-tests 脚本:
shell> cd sql-bench
shell> perl run-all-tests --server=server_name
server_name 可以是任何一个可用的服务。想要列出所有的可用选项和支持的服务,只要调用以下命令:
shell> perl run-all-tests --help
crash-me 脚本也是放在 `sql-bench' 目录下。crash-me 通过执行真正的查询以试图判断数据库都支持什么特性、性能表现以及限制。例如,它可以判断:
都支持什么字段类型
支持多少索引
支持什么样的函数
能支持多大的查询
VARCHAR 字段类型能支持多大
可以从 http://dev.mysql.com/tech-resources/crash-me.php 上找到各种不同数据库 crash-me 的结果。更多的信息请访问 http://dev.mysql.com/tech-resources/benchmarks。
1.5 使用您自己的基准
请确定对您的数据库或者应用程序做基准测试,以发现它们的瓶颈所在。解决这个瓶颈(或者使用一个假的模块来代替)之后,就能很容易地找到下一个瓶颈了。即使应用程序当前总体的表现可以接受,不过还是至少要做好找到每个瓶颈的计划,说不定某天您就希望应用程序能有更好的性能。
从MySQL的基准套件中就能找到一个便携可移植的基准测试程序了。详情请看"7.1.4 The MySQL Benchmark Suite"。您可以从基准套件中的任何一个程序,做适当的修改以适合您的需要。通过整个方式,您就可以有各种不同的办法来解决问题,知道哪个程序才是最快的。
另一个基准套件是开放源码的数据库基准,可以在 http://osdb.sourceforge.net 上找到。
当系统负载十分繁重的时候,通常就会发生问题。我们就有很多客户联系我们说他们有一个(测试过的)生产系统也遭遇了负载问题。在很多情况下,性能问题归结于数据库的基本设计(例如,在高负载下扫描数据表的表现不好)、操作系统、或者程序库等因素。很多时候,这些问题在还没有正式用于生产前相对更容易解决。
为了避免发生这样的问题,最好让您的应用程序在可能的最差的负载下做基准测试!可以使用Super Smack,在 http://jeremy.zawodny.com/mysql/super-smack 可以找到。从它名字的意思就能想到,只要您愿意,它就能让您的系统死掉,因此确认只在开发系统上做测试
2 优化 SELECT 语句及其他查询
首先,影响所有语句的一个因素是:您的权限设置越复杂,那么开销就越大。
使用比较简单的 GRANT 语句能让MySQL减少在客户端执行语句时权限检查的开销。例如,如果没有设定任何表级或者字段级的权限,那么服务器就无需检查 tables_priv 和 columns_priv 表的记录了。同样地,如果没有对帐户设定任何资源限制的话,那么服务器也就无需做资源使用统计了。如果有大量查询的话,花点时间来规划简单的授权机制以减少服务器权限检查的开销是值得的。
如果问题处在一些MySQL特定的表达式或者函数上,则可以通过 mysql 客户端程序使用 BENCHMARK() 函数做一个定时测试。它的语法是:BENCHMARK(loop_count,expression)。例如:
mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.32 sec)
上述结果是在Pentium II 400MHz的系统上执行得到的。它告诉我们:MySQL在这个系统上可以在0.32秒内执行 1,000,000 次简单的加法运算。
所有的MySQL函数都应该被最优化,不过仍然有些函数例外。BENCHMARK() 是一个用于检查查询语句中是否存在问题的非常好的工具

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

Hibernate クエリのパフォーマンスを最適化するためのヒントには、遅延読み込みを使用してコレクションと関連オブジェクトの読み込みを延期すること、バッチ処理を使用して更新、削除、または挿入操作を組み合わせて、HQL 外部接続を使用して頻繁にクエリされるオブジェクトをメモリに保存することなどがあります。エンティティとその関連エンティティを取得し、SELECTN+1 クエリ モードを回避するためにクエリ パラメータを最適化し、ブロック内の大量のデータを取得するためにインデックスを使用します。

Linux カーネルは、ソース コードが専用のコード リポジトリに保存されているオープン ソース オペレーティング システム カーネルです。この記事では、Linux カーネル ソース コードのストレージ パスを詳細に分析し、読者の理解を助けるために具体的なコード例を使用します。 1. Linux カーネル ソース コードの保存パス Linux カーネル ソース コードは、[https://github.com/torvalds/linux](http) でホストされている linux という Git リポジトリに保存されます。

データベースの最適化によってPython Webサイトのアクセス速度を向上させるにはどうすればよいですか?概要 Python Web サイトを構築する場合、データベースは重要なコンポーネントです。データベースのアクセス速度が遅いと、Web サイトのパフォーマンスやユーザー エクスペリエンスに直接影響します。この記事では、データベースを最適化して Python Web サイトのアクセス速度を向上させるいくつかの方法とサンプル コードについて説明します。はじめに ほとんどの Python Web サイトにとって、データベースはデータの保存と取得の重要な部分です。最適化されていない場合、データベースがパフォーマンスのボトルネックになる可能性があります。本

表示手順: 1. インストール ディレクトリを見つけるか、オンラインで表示します; 2. ソース コードを解凍します; 3. テキスト エディタまたは統合開発環境を使用します; 4. ソース コードに移動して表示します。詳細な紹介: 1. インストール ディレクトリを見つけるか、オンラインで表示します。JDK がインストールされている場合は、JDK インストール ディレクトリで Java ソース コードを見つけることができます。通常、JDK のインストール ディレクトリには、Java コア クラス ライブラリのソース コードを含む src.zip などの圧縮ファイルが存在し、Java ソース コードをオンラインなどで表示することもできます。

SpringBoot は、使いやすさと迅速な開発で知られる人気のある Java フレームワークです。ただし、アプリケーションの複雑さが増すにつれて、パフォーマンスの問題がボトルネックになる可能性があります。 SpringBoot アプリケーションを風のように速く作成できるように、この記事では、パフォーマンスを最適化するための実践的なヒントをいくつか紹介します。起動時間の最適化 アプリケーションの起動時間は、ユーザー エクスペリエンスの重要な要素の 1 つです。 SpringBoot には、キャッシュの使用、ログ出力の削減、クラスパス スキャンの最適化など、起動時間を最適化するいくつかの方法が用意されています。これを行うには、application.properties ファイルで spring.main.lazy-initialization を設定します。

MySQL データベースでは、インデックス作成はパフォーマンスを最適化する非常に重要な手段です。テーブル内のデータ量が増加すると、不適切なインデックスによりクエリが遅くなったり、データベースがクラッシュしたりする可能性があります。データベースのパフォーマンスを向上させるには、テーブル構造とクエリ ステートメントを設計するときにインデックスを合理的に使用する必要があります。複合インデックスは、複数のフィールドをインデックスとして結合することでクエリ効率を向上させる、より高度なインデックス作成テクノロジです。この記事では、複合インデックスを使用して MySQL のパフォーマンスを向上させる方法について詳しく説明します。複合インデックス複合とは

Tomcat ソース コードを表示する手順: 1. Tomcat ソース コードをダウンロードする; 2. Tomcat ソース コードを IDEA にインポートする; 3. ソース コードを表示する; 4. Tomcat の動作原理を理解する; 5. コミュニティに参加して貢献する; 6. 注意事項; 7. 継続的に学習して更新する; 8. ツールとプラグインを使用する。詳細な紹介: 1. Tomcat のソース コードをダウンロードするには、まず Tomcat のソース コードを入手する必要があり、Apache Tomcat の公式 Web サイトなどからソース コード パッケージをダウンロードできます。
