3

Windows 7 で MySQL 5.6 (64 ビット) を実行しています。最近、32 ビットの Windows 7 で MySQL 5.0 からアップグレードした DB をテストしています (いくつかの変更を加えて、my.ini もコピーしました)。

接続を確立するのに非常に長い時間がかかることがわかりました (1 秒程度)。例として、非常に単純な SQL スクリプトを作成しました。

select 1 as n;

次に、これをバッチ ファイルで 10 回実行しましたが、完了するまでに 10 秒かかりました。

mysql -h localhost -u root -D myschema 0< myscript.sql

(はい、ここにはパスワードはありません。これは 127.0.0.1 のみをリッスンするテスト DB です)

なぜこれが非常に遅いのか誰にも分かりますか? (以下の my.ini を参照)

[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
port=3306
bind-address=127.0.0.1
basedir="C:/Program Files/MySQL/mysql-5.6.10-winx64/"
datadir=C:/DATA
character-set-server=latin1
default-storage-engine=myisam
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_open_cache=256
tmp_table_size=18M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=35M
key_buffer_size=25M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=47M
innodb_log_file_size=24M
innodb_thread_concurrency=8
log-bin=c:/data/mysql/binarylog
max_binlog_size=1024M
enable-named-pipe
slow_query_log=
expire_logs_days=90
4

1 に答える 1

4

どっ!これはだまされているようです。見る:

MySQL サーバーへの接続が非常に遅いのはなぜですか?

https://serverfault.com/questions/408550/connecting-to-mysql-from-php-is-extremely-slow

32 ビット マシンではなく、64 ビット マシンで IPv6 を有効にしました。次の代替文字列に接続すると、処理がはるかに速くなります。

mysql -h 127.0.0.1 -u root -D myschema 0< myscript.sql

なぜこれが起こっているのかはまだわかりませんが、少なくとも回避策があります! 残念ながら、localhost私は彼をよく知っていました。

編集: my.ini への次の変更によりlocalhost、スクリプトと接続文字列での使用が可能になります。

bind-address=::1

注:::ffff:127.0.0.1またはへのバインドlocalhostは役に立たないようです。IPv6 と IPv4 の両方のアドレスを MySQL サーバーにバインドして、3 つの接続文字列すべてが機能するようにする方法について読みました (例: 、-h ::1) 。ただし、一度に動作させることができたクライアント文字列は 1 つか 2 つだけでした。 -h 127.0.0.1-h localhost

EDIT2:次の方法でバインディング:

bind-address=*

この問題を完全に解決し、IPv4 クライアントと IPv6 クライアントの両方が接続できるようになりました。唯一の欠点は、リモート接続が許可されるようになったことです。制限付きで TCP を使用し、 と の両方にlocalhostバインドする方法が見つかりませんでした。 127.0.0.1 ::1

于 2013-07-23T20:57:29.180 に答える