タグ付けされた質問 「mysql-5.1」

MySQLバージョン5.1-検索のためにmysqlでタグ付けしてください。

6
WHERE 1またはWHERE 1 = 1を使用する理由
通常、クエリステートメントで条件が必要ない場合は、WHERE句を使用しません。しかしWHERE 1、他の条件が存在しない場合でも、多くの場所で句が使用されているのを見てきました。 なぜこれが行われるのですか? 実行時間に特定の利点はありますか? 他の機能を有効にしますか? WHERE 1=1これに似たものを使用していますか?
50 mysql-5.1 

2
innodb_file_per_tableがautoextendに設定された「エラー1114(HY000)テーブルがいっぱいです」
私は大量のデータを保持するMySQLデータベースを持っています(100-200GB-科学的測定の束)。データの大部分は1つのテーブルに格納されますSample。現在、データベースのスレーブレプリカを作成innodb_file_per_tableしています。このプロセスの利点を活用したかったのです。そこでinnodb_file_per_table、スレーブ構成に設定し、データベースのダンプをインポートしました。驚いたことに、失敗しました 5602行目でエラー1114(HY000):テーブル 'Sample'がいっぱいです ファイルSample.ibdは現在約93GBであり、パーティションで600GB以上の空き容量が利用できるため、ディスクの空き容量の問題ではありません。いずれの種類のファイルシステムの制限にも達していないようです(ext4を使用しています)。 何が原因であるか、何を調査するべきかについてのアイデアに感謝します。 更新:を使用していmysql Ver 14.14 Distrib 5.1.66, for debian-linux-gnu (x86_64)ます。 SELECT @@datadir; -- returns `/home/var/lib/mysql/` SHOW VARIABLES LIKE '%innodb_data_file_path%'; -- ibdata1:10M:autoextend df -h /home/var/lib/mysql/ 768G 31G 699G 5% /home

1
既存のdatadirパスを変更する
ファイルのdatadirパスを変更したいmy.ini。 既存のdatadirパスはC:/ProgramData/MySQL/MySQL Server 5.1/Data/ C:ドライブのサイズは30 GBで、MySQLデータフォルダーは25 GBを占有しています。に変更datadirしF:/naveen/dataます。 これは可能ですか? 私のマシンはWindows Server 2003を実行しています。

2
帯域幅の問題に対処するために、MySQL 5.0レプリケーションで何ができますか?
リモートマスターの読み取り専用スレーブとして機能するMySQLサーバー5.1インスタンスで構成されたクライアントPC(Win)で実行するアプリケーションを開発しています。リモートマスターには多数のスキーマがありますが、クライアントごとに1つしか必要ないため、my.iniでreplication-do-db設定を指定して、クライアントが必要とするスキーマのみを複製します。レプリケーションは機能しますが、クライアントがデータ使用量によって課金される3Gワイヤレス経由でのみインターネットアクセスが利用できる世界の地域に入ると、データプランの制限をすぐに超えて、高価な問題が発生します。 私が理解しているように、MySQLはすべてのスキーマのすべてのトランザクションを単一のbinlogファイルに書き込みます。つまり、各クライアントはマスターのすべてのスキーマで実行されるすべてのトランザクションをダウンロードし、ダウンロードしたら、レプリケーションごとにデータベースフィルターを適用する必要があります。クライアントのmy.iniファイルのdo-db設定。 この非効率性を最小限に抑えるために、slave_compressed_protocol = 1の設定を使用しました。これにより、送信データが50%削減されるように見えますが、クライアントのデータ制限をすぐに超えて3Gの請求額が発生します。 私がこれに直面しているのは自分だけだとは想像できないので、x = yを設定することでこれを達成する方法についてたくさんの答えが得られると確信しています。ただし、このような設定のドキュメントも、推奨されるアプローチも見つかりません。 これまでのところ、可能な解決策に対する私の考えは、フィードバックまたは代替ルートを提供してください: 各スキーマに「プロキシ」スレーブを設定します(異なるボックス、または異なるMySQLインスタンス/ポートを持つ同じボックスに) クライアントが複製したい1つのデータベースのみをreplicate-do-dbにプロキシスレーブを設定します。 クライアントのMySQLインスタンスを適切なプロキシスレーブのスレーブとして構成します。 これがなければならないだけで自分のスキーマのビンログデータを引っ張って、クライアントにつながります。欠点(私が知る限り)は、セットアップの複雑さを劇的に増加させ、おそらくより脆弱にすることです。 考え?このアプローチは機能しますか? RedHatでMySQL 5.0サーバーを実行していることに注意してください。ただし、ソリューションが生成される場合は5.5にアップグレードできます。

1
expire_logs_days paramを更新してSQLを再起動した後、古いbinlogは削除されますか?
MySQL 5.1.x | InnoDB | ウィンドウズ mysqlデータディレクトリがbinログでいっぱいになり始めています。 現在、Windows mysqlサーバーで次の設定を構成しています。 [mysqld] log-bin server-id=1 binlog-do-db=foodb1 binlog-do-db=foodb2 expire_logs_days=25 expire_logs_days設定をexpire_logs_days=10mysqlサービスに変更してバウンスする予定です。この変更を行ってからどれくらい経ってから、古いビンのログが明らかになると思いますか。 これは、夜間にスケジュールされたタスクの一部としてのみ実行されますか?または、これはすぐにすべきですか?


2
innodb_flush_method = O_DIRECTとLVMディスクパーティションのあるext3のO_DSYNCパフォーマンスへの影響
私の実稼働環境の1つでは、RedHatクラスター上で2つのインスタンスが実行されており、1つの実稼働インスタンスがクラスターに関連付けられています。 インスタンス1が占有する24G InnoDBバッファープールと、インスタンス2が占有する12Gの125Gメインメモリがあり、RedHatクラスターに関連付けられていません。データとトランザクションログは両方とも、ext3ファイルシステムのあるLVMディスクパーティションにあります。 パフォーマンスの向上とI / Oスループットの向上のために、に変更innodb_flush_methodすることにしましたO_DIRECT。 MySQLドキュメントを参照して: InnoDBのデータファイルとログファイルがSAN上にある場合、に設定innodb_flush_methodするとO_DIRECT、単純なSELECTステートメントのパフォーマンスが3倍低下することがわかっています。 ハイパフォーマンスMySQL Ver 2および3を参照すると、InnoDB開発者がを使用してバグを発見したと述べていinnodb_flush_method=O_DSYNCます。O_SYNCとO_DSYNCに類似しているfsync()とfdatasync():O_SYNC一方、同期データとメタデータの両方、O_DSYNCのみ同期データ。 それがアドバイスなしで多くの説明のように思えた場合、ここにアドバイスがあります: Unixライクなオペレーティングシステムを使用しており、RAIDコントローラーにバッテリバックアップ式の書き込みキャッシュがある場合は、を使用することをお勧めしますO_DIRECT。そうでない場合は、O_DIRECTアプリケーションに応じて、デフォルトまたはおそらく最適な選択肢のいずれかです。 グーグルで、私はこのベンチマークレポートを得ました:オンO_DSYNC対O_DIRECT ベンチマークレポート: =================== 1B行の複雑なトランザクションテスト、64スレッド * SAN O_DIRECT:読み取り/書き込み要求:31560140(8766.61毎秒) * SAN O_DSYNC:読み取り/書き込み要求:5179457(1438.52毎秒) * SAN fdatasync:読み取り/書き込み要求:9445774(毎秒2623.66) *ローカルディスクO_DIRECT:読み取り/書き込み要求:3258595(毎秒905.06) *ローカルディスクO_DSYNC:読み取り/書き込み要求:3494632(1秒あたり970.65) *ローカルディスクfdatasync:読み取り/書き込み要求:4223757(1秒あたり1173.04。 ただし、O_DIRECTOSレベルのキャッシュを無効にします。ダブルキャッシュを無効にすると、I / Oスループットが向上します。 O_DIRECTよりも一緒に行くのは良いO_DSYNCですか?これら2つのオプションは少しわかりにくいです。特に本番環境でデータ、読み取り/書き込みに影響を与えることなく、I / Oスループットの向上とパフォーマンスの向上を示すオプションはどれですか?あなたの個人的な経験に基づいたより良い提案はありますか? 投稿で Rolando Updateを見ることができました: それでも、これらのパラメーターの両方にわずかな混乱があります。私が使用して生産の設定テンプレートのほとんどを見ることができた場合はO_DIRECT推薦ところ、私は任意のを見ていませんO_DSYNC。 システム MySQL 5.1.51-enterprise-gpl-pro-log Red Hat Enterprise Linux Serverリリース5.5 バッテリーライトバックキャッシュ512MBのRAIDコントローラーを搭載したDELL DRAC バッテリーバックアップユニット(BBU)を搭載したDell …

4
2つの列が同じ値にならないようにできますか
このようなテーブルがあれば CREATE TABLE foo ( id INT NOT NULL AUTO_INCREMENT, aa INT NOT NULL, bb INT NOT NULL, PRIMARY KEY (id), UNIQUE KEY (aa, bb), CONSTRAINT aa_ref FOREIGN KEY (aa) REFERENCES bar (id), CONSTRAINT bb_ref FOREIGN KEY (bb) REFERENCES bar (id) ) aa != bbアプリケーションレベルのロジックを使用するか、トリガーをBEFORE INSERTで失敗させる以外に、それを確認する方法はありますか?
11 mysql-5.1 

1
MySQL 5.5が5.1より遅い理由(Linux、mysqlslapを使用)
my.cnf(5.5と5.1は同じ): back_log=200 max_connections=512 max_connect_errors=999999 key_buffer=512M max_allowed_packet=8M table_cache=512 sort_buffer=8M read_buffer_size=8M thread_cache=8 thread_concurrency=4 myisam_sort_buffer_size=128M interactive_timeout=28800 wait_timeout=7200 mysql 5.5: ..mysql5.5/bin/mysqlslap -a --concurrency=10 --number-of-queries 5000 --iterations=5 -S /tmp/mysql_5.5.sock --engine=innodb Benchmark Running for engine innodb Average number of seconds to run all queries: 15.156 seconds Minimum number of seconds to run all queries: 15.031 seconds …

2
'name' @ '%'を使用してMySQLにユーザーを追加すると、エラー1396で失敗する
私はMySQLに新しいユーザーを追加しようとしました CREATE USER 'name'@'%' IDENTIFIED BY '...' ただし、次のエラーで失敗します。 ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%' localhostのためだけにユーザーを追加することはうまくいきます: CREATE USER 'name'@'localhost' IDENTIFIED BY '...' 何が問題なのか、私にはわかりません。どんなアイデアでもありがたいです。 (私はを使用していmysql Ver 14.14 Distrib 5.1.66ます。)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.