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

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

1
デフォルトのcharacter_set_serverがlatin1なのはなぜですか?
私はMySQL 5.5を使用していますが、文字セットに関する変数を表示すると、 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ …

1
最後のいくつかのinnodbデッドロックを表示する
mysql / innodbで最新のデッドロックを表示できることがわかりましたが、過去のデッドロックを表示する方法はありますか?デッドロックには2つの問題があります。1つは重要で、もう1つは重要ではありません。重要性の低いデッドロックは1日に数回発生するため、「最新の」デッドロックになります。

2
連続する各行の合計期間を見つける
MySQLバージョン コードはMySQL 5.5で実行されます バックグラウンド 次のようなテーブルがあります CREATE TABLE t ( id INT NOT NULL AUTO_INCREMENT , patient_id INT NOT NULL , bed_id INT NOT NULL , ward_id INT NOT NULL , admitted DATETIME NOT NULL , discharged DATETIME , PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; このテーブルは入院中の患者に関するものであり、入院中に各患者が時間を費やしたベッドが格納されています。 各病棟には複数のベッドがあり、各患者は同じ病棟内の異なるベッドに移動します。 目的 私がしたいのは、各患者が別の病棟に移動せずに特定の病棟で過ごした時間を見つけることです。つまり、彼が同じ病棟内で過ごした連続した時間の合計時間を見つけたいのです。 …

2
MySQLを構成または開始できません
まったく新しいKubuntu 14.04インストールで、私は走りましたsudo aptitude install mysql-server-core-5.6。の一部のKDEパッケージが依存しているため、インストールを完了できませんでしたmysql-server-core-5.5。置き換えられました。実行sudo aptitude install mysql-server-5.5すると、パスワードを指定した後にこのエラーが発生します。 Configuring mysql-server-5.5 Unable to set password for the MySQL "root" user An error occurred while setting the password for the MySQL administrative user. This may have happened because the account already has a password, or because of a communication problem with the …


4
MySQL InnoDBは、READ COMMITTEDであっても削除時に主キーをロックします
序文 私たちのアプリケーションは、DELETEクエリを並行して実行するいくつかのスレッドを実行します。クエリは分離されたデータに影響します。つまりDELETE、別々のスレッドからの同じ行で同時発生する可能性はありません。ただし、ドキュメントごとに、MySQLはDELETEステートメントにいわゆる「次のキー」ロックを使用します。これにより、一致するキーと一部のギャップの両方がロックされます。このことはデッドロックを引き起こし、私たちが見つけた唯一の解決策はREAD COMMITTED分離レベルを使用することです。 問題 巨大なテーブルDELETEがJOIN複数ある複雑なステートメントを実行すると問題が発生します。特定のケースでは、警告が2行しかないテーブルがありますが、クエリは2つの個別のINNER JOINedテーブルから特定のエンティティに属するすべての警告を削除する必要があります。クエリは次のとおりです。 DELETE pw FROM proc_warnings pw INNER JOIN day_position dp ON dp.transaction_id = pw.transaction_id INNER JOIN ivehicle_days vd ON vd.id = dp.ivehicle_day_id WHERE vd.ivehicle_id=? AND dp.dirty_data=1 day_positionテーブルが十分に大きい場合(私のテストケースでは1448行あります)、READ COMMITTED分離モードでもトランザクションはテーブル全体を ブロックしproc_warningsます。 この問題は常にこのサンプルデータ(http://yadi.sk/d/QDuwBtpW1BxB9)で再現されます(MySQL 5.1(5.1.59でチェック)およびMySQL 5.5(MySQL 5.5.24でチェック))。 編集:リンクされたサンプルデータには、クエリテーブルのスキーマとインデックスも含まれています。 CREATE TABLE `proc_warnings` ( `id` int(11) NOT NULL AUTO_INCREMENT, `transaction_id` int(10) …

1
頻繁にクエリされる100,000レコードのMySQLテーブル
私はさまざまな種類の情報を格納するために、約100個のテーブルの単一のデータベースを持っています。 最も重要なテーブルは、顧客の注文を格納するために使用される注文テーブルであり、現在および増加している現在では10万件を超えるレコードです。 このテーブルは、リアルタイム注文ダッシュボード、統計、分析などから必要な情報のさまざまな部分について、データベースで最もクエリの多いテーブルです。 私は定期的にデータベースを監視しており、問題を追跡するためにデータベースで遅いクエリを有効にしています。 私はmysqltunerのようなスクリプトを使用して、毎日クエリを吐き出しています。 また、mysqlslaを使用して、データベース内の最も遅い10個のクエリに関する情報を収集します。 sample stat Count : 11.48k (30.66%) Time : 19.623758 s total, 1.709 ms avg, 239 µs to 2.475017 s max (18.64%) 95% of Time : 5.246833 s total, 481 µs avg, 239 µs to 1.095 ms max Lock Time (s) : 14.460071 s total, …

2
メタデータロックを待機しているため、テーブルを削除できません
1つのテーブルを削除しようとしていますが、それがハングアップしています。「SHOW PROCESSLIST」コマンドを見ると、「メタデータのロックを待っています」と表示されています。その特定のテーブルで操作を実行することもできません。誰かがそれを解決する方法を知っていますか?


1
サブクエリでの外部エイリアスの使用
| payments | | transactions | | transaction_items | |:--------------:| |:------------:| |:-----------------:| | id | | id | | id | | date | | number | | transaction_id | | amount | | date | | description | | transaction_id | | val | | price | | discount …
11 mysql  mysql-5.5 

4
16 GBのRAMを搭載したQuadCoreマシンでMySQLを最大限に活用する方法は?
科学的データ分析のためにワークステーションでMySQL 5.5サーバーを実行していますが、パフォーマンスを最大限に活用するためにMySQLを構成する方法を考えています。私が通常実行するクエリの種類には、10〜20のテーブルの結合が含まれ、非常に長く実行できます。1〜数分は例外ではありません。同時にデータベースにアクセスするユーザーはごくわずかです(最大5人)。2.2 GHzのデュアルコアと4 GBのRAMを搭載したLenovo Thinkpad T61から、コンポーネントを手動で選択した次の新しいマシンにサーバーを移動しました。 Intel i7 3770、4x 3.4 GHz(4x3.7 GHzで稼働) Z77チップセット 16 GBのDDR3 1600 RAM Windows 7 Prof 64ビット WindowsおよびMySQLサーバーはIntel 520シリーズSSDドライブで実行されます。 最初のテスト(両方のマシンで同じクエリを実行)は、新しいテストの速度の決定的な改善を示しましたが、クエリにはまだ多くの時間がかかり、さらに向上することを期待していました。問題のクエリはかなり適切に最適化されています。つまり、すべてのテーブルには、「拡張された説明」の時点でも使用されている適切なキーがあります。 さて、現在のMySQLの設定に戻ります。最初に、MyISAMからInnodbにかなり前に移動したことを述べておきます。 my.iniの調整の一部(つまり、デフォルト設定からの逸脱): # Maximum size for internal (in-memory) temporary tables. If a table # grows larger than this value, it is automatically converted to disk # …

4
MySQLの以前のスレーブをマスターに変更し、スレーブステータス情報を削除する方法は?
マスターが失敗したマスター->スレーブ構成があります。私は古いスレーブをマスターに、古いマスターをスレーブにリセットすることができました。いいね。 私ができないように見えるのは、現在新しいマスターになっている古いスレーブのマスター情報を削除することです。そうですか: mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Master_Host: 10.1.2.101 Master_User: replicationSlave Master_Port: 3306 ... Slave_IO_Running: No Slave_SQL_Running: No 多くのMySQLドキュメントを読みましたが、スレーブ情報をnew-masterからクリアする方法がまだ見つかりません。私はもう試した: RESET SLAVEこれらの設定はクリアされないようです。[実際には、master.infoファイルは削除されますが、メモリ設定は削除されません。下記参照。]] CHANGE MASTER TO MASTER_HOST='' これは最近廃止されたため、エラーが発生しただけです。 my.cnfそれらがプログラムで追加されたため、マスター情報がないものをチェックしています。 RESET MASTER一部のmysqlドキュメントで推奨されているため。これは、binログのみをリセットします。 内部のMySQLテーブルを調べて、クリアするフィールドが見つかるかどうかを確認します。 MySQL〜5.5.9でこれを行う適切な方法は何ですか?助けてくれてありがとう。 編集: したがって、@ RolandoMySQLDBAが暗示するようにファイルをRESET SLAVE削除することがmaster.infoわかりました。ただし、スレーブ情報を削除する前に、サーバーを再起動する必要があります。 mysqldを再起動せずにこのスレーブ情報を削除する方法はありますか?

2
クエリがテーブルレベルのロックを待機しないようにする方法
お客様のデータベースを追加のサーバーに移動した後、問題が発生しました。これはサイトのパフォーマンスにプラスの影響を与えるはずでしたが、MyISAMのテーブルロックに問題があります。(MyISAMの代わりにInnoDBを使用することを聞いたことがありますが、近い将来エンジンを変更することはできません)。 モデレーターが記事サイトのコメントをアクティブ化するときに実行されるupdate-queryにそれを見つけることができます。これはプロセスです: update-queryが処理されます SET status = 1 WHERE id = 5(インデックスが設定されます) ページのキャッシュファイルが削除されます この時点で、ページ全体が遅くなります。データベース自体は数分間ビジーです。私はプロセスリストを数回フェッチし、さまざまな選択クエリの約60のエントリを確認しました。これらはすべて、テーブルレベルのロックを待機している状態でした。 1.テーブルに対するこの更新が、テーブルレベルのロックを待機するテーブルのarticle_commentsselect-statementsに影響を与える理由がわかりませんarticle。プロセスリストでは、待機中のほとんどすべてのクエリがこのテーブルからのものでした。selectよりもupdate / insertが優先され、これがそのような問題を引き起こす可能性があるという事実を読みましたが、記事テーブル自体はコメントがアクティブになっても更新されないので、selectは待つべきではありません。私はそれを誤解しましたか? 2.この動作を防止するため、または少なくともより良いバランスを得るために、InnoDBに変更する以外に何かありますか?データベースを新しいサーバーに移動する前にこの問題が発生しなかったという事実に非常に苛立ちました。いくつかの設定ミスがあると思いますが、特定する方法がわかりません。

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 …

1
mysqlでLOAD DATA LOCAL INFILEを有効にする
LOAD DATA LOCAL INFILEデフォルトでは有効になっていません。通常は、に配置することlocal-infile=1で有効になりmy.cnfます。ただし、すべてのインストールで機能するわけではありません。私の経験では、Debian 7では機能しましたが、Debian 7ミニマルでは機能しませんでしたが、どちらのインストールも同じプリコンパイル済みのdebパッケージからのものです。OpenVZ VPSの両方で。 なぜデバッグする方法local-infile=1インストールのための仕事、そしてどのように安全にアクティブにするためにはありませんかLOAD DATA LOCAL INFILE?

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