問題タブ [myisam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MyISAMを使用するときにMySQLでロックされたSELECT:sを回避する
MyISAMはテーブルレベルのロックを使用します。これは、INSERT / UPDATE:sの実行中にSELECT:sがブロックされることを意味します。
ブロックされたSELECTの問題を軽減するために、次のパラメータを使用してMySQLを構成することをお勧めします。
low_priority_updates=1
concurrent_insert=2
low_priority_updates=1
とを使用することの欠点は何concurrent_insert=2
ですか?
mysql - InnoDB テーブルのレコード数の値がおかしいのはなぜですか?
以下は、私の mysql DB の 2 つのテーブルの行の量です
。1 つは myisam、もう 1 つは innodb です。
innodbの番号の前に~がある理由を誰か教えてもらえますか?
これらの数値はphpmyadminからのものです
mysql - MySql BLOB 列で空間インデックスを作成中にエラーが発生しました
BLOB 型の Location という名前のテーブル列に空間インデックスを追加しようとしています。私がこれを試してみると:
私は得る:
エラー: BLOB/TEXT カラム 'Location' がキーの長さを指定せずにキー指定で使用されました
しかし、MySql 5.1 (私が使用しているバージョン) の公式ドキュメントでは、空間インデックスを参照するときに次のように明確に述べています。
「MySQL 5.1 では、列のプレフィックスの長さは禁止されています。各列の全幅がインデックス化されています。」
これは確かに、プレフィックスを提供する必要がないことを示しています。とにかく次のようにプレフィックスを追加してみました:
そして私は得る:
エラー: プレフィックス キーが正しくありません。使用されたキー部分が文字列ではない、使用された長さがキー部分よりも長い、またはストレージ エンジンが一意のプレフィックス キーをサポートしていない
それで、一体何が起こっているのですか?? 情報として、私は MySQL 5.1.37 コミュニティを使用しています。私のテーブルは MyISAM です。これは create ステートメントです。
PS私も場所をNOT NULLにしてみましたが、違いはありませんでした。
sql - SQLクエリでいくつかのテーブルのMySQLのエンジン名を選択する方法は?
テーブルの MySQL のエンジン名を選択する方法。MyISAM または InnoDB。単純なSQLクエリでそれを行うことはできますか?
sql - InnoDBの並べ替えは本当に遅いですか?
私はすべてのテーブルをmyISAMに持っていましたが、更新ジョブを長時間実行していると、テーブルレベルのロックによって私が殺され始めていました。プライマリテーブルをInnoDBに変換しましたが、myISAMでほぼ瞬時に行われたクエリの多くは、完了するまでに1分以上かかります。彼らは通常、Sorting result
ステップで立ち往生しています。私は何か間違ったことをしましたか?
例えば :
今は約90秒かかります。ここに説明があります:
今では、大量のクエリが「結果の並べ替え」ステップでスタックしているようです。
その単純な更新が49秒間スタックするのはなぜですか?
それが役立つ場合は、ここにスキーマがあります:
そして、これらは私のmy.cnfにあります
sql - MyISAMで読み取りが他の読み取りをブロックするのはなぜですか?
私は本当に長い間読んでいます。これは1日1回実行されるcronジョブですが、実行中はDB全体がロックダウンされます。
更新がロックされていることは理解できますが、SELECTもロックされているのはなぜですか?
sql - すでにインデックスを使用しているcount(*)を高速化するにはどうすればよいですか?(MyISAM)
3つの大きなテーブル(10k、10k、および100M行)があり、それらの結合を単純にカウントしようとしています。ここでは、結合されたすべての列にインデックスが付けられます。COUNT(*)に時間がかかるのはなぜですか?また、どうすれば(トリガーと実行中の要約なしで)それを高速化できますか?
しかし、実際にクエリを実行するには約10分かかります。私は、MyISAMを使用しているため、その間、テーブルは完全にロックダウンされます。
mysql - MYSQL MyIsaM 結合方法 2 ステートメント select + select count
テーブル: postid|userid|post|replyto
投稿SQL
SELECT * FROM テーブル WHERE postid=12
総返信SQL
SELECT COUNT(*) AS total FROM table WHERE replyto=12
予想される結果は、「投稿テーブル」+投稿への返信数です。replyto フィールドは対象の postid です。のようなもの:
投稿ID|ユーザーID|投稿|返信先|総返信数
この 2 つのクエリに参加する可能性はありますか?
ありがとう!
mysql - このクエリでロックされるテーブルはどれですか?
以下のクエリを使用して、2つのテーブル間でデータを移行しています。テーブルロックの問題が発生したため、テーブルエンジンをMyISAMからInnoDBに変更することを検討しています。どのテーブルでそれを行う必要がありますか?私が書いているテーブルだけですか、それとも私が書いているテーブルと私が読んでいるテーブルの両方ですか?