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

MySQLバージョン5.5-検索目的でmysqlもタグ付けしてください。

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にアップグレードできます。

2
MySQLのAWS RDS t1-microでmax_connectionsを増やす必要がありますか?
MySQL 5.5を実行しているAWS RDS t1-microがあります。接続エラーが多すぎます。チェックすると、最大34の同時接続が許可されます。私が読んだことは、このマイクロインスタンスのDBパラメータグループを作成することにより、この最大値を増やすことができるということです。 私の混乱は DBパラメーターグループのマイクロの最大接続値を増やす必要がありますか?または、より多くの最大接続(125)を提供する次のRDSレベルへのアップグレードを検討する必要がありますか? micro RDSのmax_connectionsを125に増やし、RDS smallインスタンスにアップグレードする必要がありますか? なぜ、どのような要因で決定を下す必要がありますか? ありがとう

2
3500万行以上のテーブルに対応する効果的なmysqlテーブル/インデックスデザイン、200以上の対応する列(ダブル)、任意の組み合わせをクエリ可能
次の状況でのテーブル/インデックスの設計に関するアドバイスを探しています。 複合主キー(assetid(int)、date(date))を含む大きなテーブル(株価履歴データ、InnoDB、3500万行および成長)があります。価格情報に加えて、各レコードに対応する必要がある200のdouble値があります。 CREATE TABLE `mytable` ( `assetid` int(11) NOT NULL, `date` date NOT NULL, `close` double NOT NULL, `f1` double DEFAULT NULL, `f2` double DEFAULT NULL, `f3` double DEFAULT NULL, `f4` double DEFAULT NULL, ... skip a few … `f200` double DEFAULT NULL, PRIMARY KEY (`assetid`, `date`)) ENGINE=`InnoDB` DEFAULT CHARACTER …

2
複合キーの最初の部分としてDATETIMEを持つ主キーインデックスは使用されません
PRIMARY KEYの最初の部分として、DATETIME(または日付)のインデックス付けに問題があります。 MySQL 5.5を使用します これが私の2つのテーブルです。 -- This is my standard table with dateDim as a dateTime CREATE TABLE `stats` ( `dateDim` datetime NOT NULL, `accountDim` mediumint(8) unsigned NOT NULL, `execCodeDim` smallint(5) unsigned NOT NULL, `operationTypeDim` tinyint(3) unsigned NOT NULL, `junkDim` tinyint(3) unsigned NOT NULL, `ipCountryDim` smallint(5) unsigned NOT NULL, `count` …

2
tinyint(N)の意味は何ですか?
数値データ型で引数の長さを使用する場合、私が知る限り、これは表示幅を指定します。 私は次を試しました: mysql> create table boolean_test (var1 boolean, var2 tinyint); Query OK, 0 rows affected (0.10 sec) mysql> show create table boolean_test; +--------------+------------------------- | Table | Create Table +--------------+------------------------- | boolean_test | CREATE TABLE `boolean_test` ( `var1` tinyint(1) DEFAULT NULL, `var2` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +--------------+--------------------------- …


2
どのmax_allowed_pa​​cketが十分な大きさであり、なぜそれを変更する必要があるのですか?
マスタースレーブ設定でMySQL(5.5)を使用し、別のスレーブサーバーを作成しました。 元のスレーブを停止し、データをダンプし、コピーして再インポートしたところ、正常に機能しました。元のスレーブのmaster_log posを書き留め、これらのコマンドを使用して新しいスレーブに設定しました CHANGE MASTER TO MASTER_HOST='<ipaddress>', MASTER_USER='<username>', MASTER_PASSWORD='<password>', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000851', MASTER_LOG_POS=15824150, MASTER_CONNECT_RETRY=10; 新しいスレーブを開始したとき Last_IO_Error:バイナリログからデータを読み取るときに、マスターから致命的なエラー1236が発生しました: 'ログイベントエントリがmax_allowed_pa​​cketを超えました。マスターのmax_allowed_pa​​cketを増やす しかし、元のスレーブを開始したとき、それはうまく追いつき、現在同期しています。 質問: 現在の値は16Mですが、どのくらいの大きさにすればよいのかを知るには (本番サーバーでの試行錯誤は避けたいです)。 元のスレーブがうまく処理されたときに、マスターの値を増やす必要があるのはなぜですか、本当に新しいスレーブに問題があるのでしょうか? 更新 Rolandoがマスター、古いスレーブ、および新しいスレーブで提案したように、max_allowed_pa​​cketを1073741824に増やし、それらを再起動しました(SET GLOBAL max_allowed_packet = 1073741824;何らかの理由でとらえられなかったようです) 今、最後のIOエラーは以前と同じですが、今では Last_SQL_Error:リレーログ読み取りエラー:リレーログイベントエントリを解析できませんでした。考えられる理由は次のとおりです。マスターのバイナリログが破損している(バイナリログで「mysqlbinlog」を実行すると確認できます)、スレーブのリレーログが破損しています(リレーログで「mysqlbinlog」を実行すると確認できます)、ネットワークの問題、またはマスターまたはスレーブのMySQLコードのバグ。マスターのバイナリログまたはスレーブのリレーログを確認したい場合、このスレーブで「SHOW SLAVE STATUS」を発行することにより、それらの名前を知ることができます。 マスターのファイルでmysqlbinlogを実行すると、コマンドを使って何年も前にスクロールします-ファイルは722Mです-スレーブリレーログでそれを実行すると、 エラー:Log_event :: read_log_event()のエラー: '健全性チェックに失敗しました'、data_len:38916267、event_type:69 エラー:オフセット253のエントリを読み取ることができませんでした:ログ形式のエラーまたは読み取りエラー。 変数を確認しましたが、変更は機能しました mysql>変数LIKE '%max_allowed_pa​​cket%'を表示します。 新しいスレーブ上でmax_allowed_packetAND slave_max_allowed_packetが示され、マスター上ではmax_allowed_packet だから私はマスターでバージョンチェックをしました: mysql> show variables LIKE '%version%'; +-------------------------+--------------------------------------+ | …


1
「log_queries_not_using_indexes」を有効にすると「long_query_time」が無効になりますか?
Mysqlでlog_queries_not_using_indexes、slow_query_logおよびを有効にするとlong_query_time、クエリ時間が5秒よりはるかに短い場合でも、生成されたスロークエリログファイルに多くのクエリが含まれることに気付きましたlong_query_time。 一度と思われlog_queries_not_using_indexes有効になっている、MySQLは関係なく「long_query_time」は何であるか、インデックスを使用していないではないすべてのクエリをログに記録します。 これを克服する方法はありますか?つまり、long_query_timeインデックスを使用しているかどうかに関係なく、時間がかかるすべてのクエリを記録する方法はありますか?

1
レプリケーション環境でのビンログの削除
レプリケーション環境でのバイナリログの削除について質問があります。 1つのマスターと2つのスレーブがある環境があります(mysql 5.5を実行しています)。場合によっては、処理時間が長いときにスペースの問題が発生し、binログディレクトリがいっぱいになることがあります。ログは3日ごとに期限切れになります。私は、すべてのボックス(マスターと両方のスレーブ)でログを3日間保持する必要があるのか​​疑問に思っていました。たとえば、マスターでは3日間、スレーブでは1日間ログを保持するのは理にかなっていますか?それを行う最善の方法は何ですか? ありがとうございました!

2
InnoDBテーブルから断片化をどのように削除しますか?
複数のテーブルを持つデータベースがあります。 レコードの数が20Kまたは50Kを超えていると言うテーブルからいくつかのレコードを削除したい。 すべてのテーブルはInnoDBです。そして、file_per_tableあるオフ。 いくつかのテーブルからレコードを削除すると、テーブルに断片化が生じます。 断片化を削除する方法はありますか? 4月17日に更新 mysql> select TABLE_NAME, TABLE_SCHEMA, Data_free from information_schema.TABLES where TABLE_SCHEMA NOT IN ('information_schema', 'mysql') and Data_Free >0; +-----------------+--------------+-----------+ | TABLE_NAME | TABLE_SCHEMA | Data_free | +-----------------+--------------+-----------+ | City | world_innodb | 5242880 | | City_Copy | world_innodb | 5242880 | | Country | world_innodb | …

2
サブクエリからの行のカウント
シンプル:サブクエリの行数をカウントしたいと思います。ステータスは、ホストがオンラインかどうかに注意してください。 悪いコード SELECT COUNT(ip_address) FROM `ports` ( SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE ) 説明しました 最初のクエリを単独で実行すると、次のように返されます。 SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE ip_address 192.168.1.1 192.168.1.2 192.168.1.248 192.168.1.251 192.168.1.254 単独で実行される2番目のクエリはこれを返します。 SELECT COUNT(ip_address) FROM `ports` 17 質問 5つのIPアドレスのリストを数える方法を教えてください。 私はこの単純な問題の可能な解決策をオンラインで見ていて、ただイライラしているので、専門家に尋ねると思いました。


2
600GBテーブルのインデックス付きキーデータ型をINTからBIGINTに変更する最速の方法
600GB MySQLテーブルでデータ型をINTからBIGINTに変更する必要があります。列には一意のインデックスがあります。私は無署名のINTで良いかもしれませんが、それを変更するか、BIGINTを変更することはほとんど同じ痛みだと思います。テーブルのエンジンはInnoDBです。簡単になるもの: 他の机 構造のコピーと INSERT INTO (SELECT *) テーブルのダンプとダンプファイルテーブル定義の変更 他に何か? 更新:要求どおり、MySQLバージョン5.5.15、外部キーなし、テーブル作成: CREATE TABLE `tbl` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `created_at` datetime NOT NULL, `tid` bigint(20) NOT NULL, `t` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `f` tinyint(1) NOT NULL, `i_id` bigint(20) NOT NULL, `ir_id` …


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