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

MySQLのすべてのバージョン(Microsoft SQL Serverではありません)。質問に関連する場合は、mysql-5.7のようなバージョン固有のタグも追加してください。

4
mysql innodbデータベースのテーブル名+各テーブルのレコード数を表示する
現在のデータベース内のすべてのテーブルを、テーブルの行数とともにリストする方法。 言い換えれば、mysqlでこのようなものを作成するクエリを考えることができますか? +------------------------++------------------------+ | Tables_in_database | Number of rows | +------------------------++------------------------+ | database 1 | 1000 | | database 2 | 1500 | +------------------------++------------------------+ さまざまなアプローチを歓迎します。
10 mysql  innodb  select  count 

3
.ibd、.frm、およびmysqllogbinファイルからのMySQLテーブルの復元
何らかの理由で、(MySQLまたはphpmyadminに関係なく).frmと.ibdファイルに保存されている自分のテーブルを開こうとすると、構文エラーが表示されるか、存在しないと表示されます。 これと同様の問題があった他の投稿を読みましたが、innodb_file_per_table有効になっているかどうかを確認する方法がわからず、全体的に本当に混乱しています。また、mysql-bin.000002ファイルのコピーをtxtファイルに変換したので、データベースのデータが完全に失われていないことがわかります。 データベースは昨年作成されました。これらのmysql-bin.00000ファイルは6つありますが、なんらかの理由で.000002最大です。現在、すべてのデータベースの.ibdおよび.frmファイルがありますが、MySQLに、または少なくとも読み取り可能なものに復元する方法について、私は途方に暮れています。 Windows 2003 ServerでWampServer 2.4とMySQL 5.6.12を使用しています。また、InnoDBでプラグインをダウンロードする必要がありますか?

1
MySQL照合utf8_unicodeの違い
しかし、私はMySQL照合の重要性について読んでいます。互換性と精度に関してこれまでに学んだことは、これら4つが私の最善の策であるようです。 utf8_unicode_ci utf8_unicode_520_ci utf8mb4_unicode_ci utf8mb4_unicode_520_ci 私の理解から、uft8mb4は多言語(文字)をサポートする文字(たとえば日本語)に適しています。uf8は3バイトのみをサポートし、uf8mb4は4バイトをサポートします。したがって、明らかな選択はuf8mb4であるように聞こえますが、問題は、長さに制限があるようです(くそー!私のケーキも食べて食べたい)これは少し心配です(私は思う)。 次に、520標準について考慮します。それは私がそれで見つけることができなかったものから、より多くを提供します。しかし、それはもちろん問題です。私はそれについてほとんど見つけることができませんでした。それが改善だと人々が言っ​​ているだけですが、それがいかにそうであるかについて非常に曖昧です。 私はできるだけ少ない制限でできるだけ多くのことを望んでいます...私はここの誰かが何かを知っているかもしれないと考えました。MySQLの公式サイトは、私が望んでいたほど情報量が多くありませんでした。 最も互換性、正確性、保存期間が最も長い4つのうちどれですか。また、502標準間の大きな違いは何ですか?
10 mysql 

3
mysqldump --single-transaction、それでも更新クエリはバックアップを待機しています
mysqldump --single-transactionを使用する場合、ドキュメントによると、読み取りロックでテーブルをフラッシュして一貫した状態を取得し、トランザクションを開始する必要があります。ライターは待機していません。 しかし、私は昨夜、次の状況に遭遇しました: show fullプロセスリストからの抜粋: 何百もの... Command: Query Time: 291 State: Waiting for table flush Info: insert into db_external_notification..... 次にこれ: Command: Query Time: 1204 State: Sending data Info: SELECT /*!40001 SQL_NO_CACHE */ * FROM `db_external_notification` 残りのスレッドはスリープ状態です これらの挿入が何を待っているのか誰かが何か知っていますか?クエリを待機させるFLUSHテーブル、DDL、またはマニュアルに記載されているものはありません。 mysqldumpコマンド全体 mysqldump --quick --add-drop-table --single-transaction --master-data=2 -uxx -pxx dbname 私は--quickはここでは冗長であると思います、おそらく以前の時間からの残り物です、このスクリプトは非常に古いですが、何も害しないはず

1
スレッドセーフな方法で値(カウンター)をクエリしてインクリメントする方法は?(競合状態を回避)
各行にカウンター(整数値のみ)があるテーブルでは、現在の値を取得し、同時にそれを増やす必要があります。 効果的に、私はこれをしたいです: SELECT counter FROM table WHERE id=123 UPDATE table SET counter=counter+1 WHERE id=123 ただし、2つのクエリがスレッドセーフではないため、これを行うことは明らかにスレッドセーフではありません。(同じ行で)同じことを行う複数のプロセスが同じカウンター値を取得する場合があります。すべて一意にする必要があるので、各プロセスで実際の現在値を取得し、1つ増やします。 行ごとに手動ロックを実装する構成を考えることができますが、これを行う簡単な方法はあるのでしょうか。
10 mysql  locking 

5
最適なsort_buffer_sizeを決定する方法は?
私は次のことを言うサンプル構成ファイルから読みました: # Sort buffer is used to perform sorts for some ORDER BY and GROUP BY # queries. If sorted data does not fit into the sort buffer, a disk # based merge sort is used instead - See the "Sort_merge_passes" # status variable. Allocated per thread if sort is …

1
MySqlサーバーのパフォーマンスが遅い-何を確認する方法
開始:免責事項 私はMySql Server DBAではありません。私はほとんどMSSQLについて知っています。そのため、あなたの助けが必要です。 終了:免責事項 MySqlサーバーエンジンのパフォーマンスが低い理由を確認するように求められました-関連するデータベースを見たことも保持したこともないので、どこから始めればよいか知りたいです。 どこから始めますか? MySqlにアクセスできるユーザーにどのような質問をする必要がありますか。phpmyadminや他のツールを使用しているかどうかもわかりません。 基本的に: どのようなアイテムを要求する必要がありますか。また、提供する各アイテムにどのように応答しますか? 問題がデータベースのパフォーマンスにあるときに要求する重要な項目は何ですか? MSSQL sp_who2で既存の接続をチェックして、何かがブロックされているかどうかを確認できますが、mysqlの対応は何ですか?*各アイテムにはさまざまな種類の結果が存在する可能性があるため、具体的である必要はありませんが、ユーザーに影響を与えているため、ボールが回転するのを手助けしたいと思います。

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?

3
大きなバッチの挿入速度
私のアプリケーションでは、INSERTにかなりの時間がかかっているようです。テーブルに挿入するオブジェクトがメモリ内に多数(約40〜50,000)あります。 サンプルテーブルを見てみましょう CREATE TABLE bill ( id BIGINT(20) PRIMARY KEY, amount INT(11) DEFAULT 0, bill_date DATETIME DEFAULT NOW(), INDEX (bill_date) ) ENGINE=InnoDB 私のバッチサイズとして3行を取ると、以下は挿入するために考えられるアプローチです アプローチ1-3つのrawインサートを作成して起動する INSERT INTO bill (amount, bill_date) VALUES (10, '2012-01-01 00:00:00'); INSERT INTO bill (amount, bill_date) VALUES (20, '2012-01-02 00:00:00'); INSERT INTO bill (amount, bill_date) VALUES (40, '2013-02-05 …
10 mysql  innodb  insert  java  jdbc 

1
MySQLでUPDATEクエリをバッチ処理する最も効率的な方法は何ですか?
大量の更新をデータベースに長期間フラッシュする必要があるアプリケーションを作成していますが、クエリを最適化する方法に行き詰まっています。現在私はを使用していますINSERT INTO ... VALUES (..), (..) ON DUPLICATE KEY UPDATE。これは、すべての値を1つのクエリにバッチ処理するように機能しますが、大きなテーブルでは非常に遅く実行されます。実際に行を挿入する必要はありません。 私が見た他のアプローチは、更新を使用SET value = CASE WHEN...することです(これはクエリを構築している方法のために生成するのが難しくCASE、数百/数千のキーのパフォーマンスについてはわかりません)、そして単に複数の連結アップデート。これらのどちらが私の現在の方法よりも速いでしょうか? 私の知る限り、MySQLでこれを行うための慣用的で効率的な方法はないことに戸惑います。よりも高速な方法がない場合ON DUPLICATE KEY、PostgreSQLに切り替えてそのUPDATE FROM構文を使用する価値はありますか? 他の提案も大歓迎です! 編集:頻繁に更新されるテーブルの1つを次に示します。無関係であるため、列名を削除しました。 CREATE TABLE IF NOT EXISTS `table` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `a` bigint(20) unsigned NOT NULL DEFAULT '0', `b` bigint(20) unsigned NOT NULL DEFAULT '0', `c` enum('0','1','2') …
10 mysql  update 

1
列の値ごとにSELECT LIMIT 1?
次の表があるとしましょう ----------------------------- | user_id | comment | ----------------------------- | 2 | thats cool | | 2 | awesome | | 3 | i hate this | | 3 | okay | | 6 | this is weird | | 6 | hello? | | 6 | what is it | …

6
Workbenchを使用してSSH経由でMySQLデータベースに接続できない
MySQL Workbenchを使用して、Webアプリケーションサーバーの1つからSSHトンネリングを介してデータベースに接続しようとしています。これが基本的な設定です。セキュリティ上の理由から、スクリーンショットの一部の値を変更したことに注意してください。 問題は、アプリケーションサーバーの1つからSSHトンネルを介して接続しようとするたびに、次のエラーが発生することです。 ユーザーsocial_shop_prodを使用して、computer.amazonaws.comのSSHトンネル経由でus-east-1.amazonaws.comに接続できませんでした。127.0.0.1のMySQLサーバーに接続できません。 ただし、次のコマンドラインを介してSSH経由で同じ資格情報を使用する場合: mysql -u social_shop_prod -h us-east-1.amazonaws.com -p 正常に接続して、MySQLインタラクティブコマンドプロンプトを取得できます。 ここで私の開発チームの他のメンバーと話していると、誰も私がWorkbenchを使用してアプリサーバーからSSH経由でトンネルできない理由を理解できません。しかし、私がアプリサーバーの1つにSSHで接続し、コマンドラインを介してMySQLに接続すると、接続できました。 そして、なぜそれは127.0.0.1以上に接続しようとしていますか?構成では指定しませんでした。また、私のhostsファイルは、以下に示すドメインをそのIPにリダイレクトしていません。 どんな建設的な入力も大歓迎です。

2
mysqldumpコマンドは、DBに存在するすべてのビューもバックアップしますか、それとも特別なコマンドがありますか?
ビューとともにデータベース全体をバックアップしようとしています。mysqldumpコマンドを使用します。それがすべてのビューをコピーするのか、それとも別のコマンドを使用する必要があるのか​​と思っていました。 答えを教えてください。どんな助けでも大歓迎です。
10 mysql  backup  mysqldump  view 

1
MySQLダンプの復元-コメントを保持する方法
だから私はバックアップとしてその複雑なMySQLダンプを持っています。残念ながら、そのバックアップは複雑であり、私たちは邪悪なトリガーを使用しています。 私たちの邪悪なトリガーのいくつかには、#文字で始まるコメント行がありました。 データベースをバックアップすると、結果のダンプで#行が保存されます。問題は、復元を実行しているときです。#で始まる行は空行に置き換えられます。 だから私はポンドで始まる行でダンプを復元する方法を探しています。

1
mysqldumpはトリガーとプロシージャをダンプできますか?
指定されたデータベースからすべてのトリガーとプロシージャを保存するmysqldumpを作成する方法はありますか? 少し前に私はそれを読んでmysqldumpトリガーも保存されますが、そのようには見えません。2つ目の関連する質問は、トリガーが存在する場合にSQLファイルをチェックインするにはどうすればよいですか?

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