問題タブ [memory-table]

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.

0 投票する
2 に答える
240 参照

mysql - mysql、テーブル内の制限されたエントリを強制する

一時データをメモリ テーブルに保持します。最新の 20 個のエントリだけが必要で、データが常にヒープ上にあることを望みます。どうすればこれを達成できますか? メモリテーブルについてできることは何もないと確信していますが、エントリテーブルをどのように処理すればよいですか? 新しい値をプッシュするときはいつでも、autoincrease キーを追加して最も古いキーを削除する必要がありますか?

0 投票する
4 に答える
11402 参照

mysql - テーブル内のすべての列にインデックスを付ける

MySQLのインデックス作成に関していくつか質問があります。

1)メモリに保存されているテーブルにインデックスを付けるときに速度が向上しますか?

2)列フィールドで一致するテーブルを検索する場合、すべての列にインデックスを付けると、インデックスの目的が損なわれますか?

どうもありがとう。

0 投票する
2 に答える
980 参照

mysql - Mysql: メモリ テーブルが max_heap_table_size に達した場合の対処方法は?

何度か読み取られるデータ行をキャッシュする方法として、mysql メモリ テーブルを使用しています。私のソリューションでは xcache または memcache を使用できないため、この代替手段を選択しました。このトピックに関するmysqlのマニュアルとフォーラムを読んだ後、テーブルが最大メモリ サイズに達するとエラーが発生するという結論に達しました。テーブルを切り捨ててメモリを解放するために、このエラーをキャッチする方法があるかどうかを知りたいです。使用できるメモリの制限を上げたくありません。テーブルが引き続き機能するように、メモリを自動的に解放する方法が必要です。

ありがとう。

0 投票する
1 に答える
584 参照

mysql - 小さなMEMORYテーブルの主キーの単純な定数選択が非常に遅い

約650行、5 MBのデータ長、60 kBのインデックス長のMEMORYテーブルがあります(かなり小さいです)。1つのSMALLINTプライマリ(ハッシュ)キーと、約90の他の列(int、varchars、datetimes、blobまたはtextsなし)があります。(編集:BIGINT列にもハッシュキーがあります。)

私はこのクエリを(PHPから)かなり頻繁に実行しています(1秒間に約10回):

select * from userek where id = {CONST_ID} and kitiltva = 0 and kitiltva_meddig <"{CONST_DATETIME}" and inaktiv = 0

注:idは主キーです。*結果はさまざまな場所で使用され、基本的にすべての列がここかそこかで使用されるため、必要です。

私の問題は、クエリが定期的に異常に遅くなることです。平均0.5sして、8s最大。ほとんどの場合、それは非常に高速です。平均よりも速く実行75%されます。しかし、それは平均よりも遅く、 。よりも遅いです。だからそれは長い尾を持っています。3ms85%15%13%1s

そして、私はそれを引き起こす可能性があるものがまったくわかりません。誰か考えはありますか?

0 投票する
1 に答える
125 参照

mysql - 2台のサーバー、2台のメモリテーブル、異なるサイズ

2台のサーバーで両方ともMySQLインスタンスを実行しています。最初のserver1は、MySQL5.0.22を実行しています。もう1つのserver2は、MySQL5.1.58を実行しています。

にメモリテーブルを作成しserver1、行を追加すると、そのサイズは即座になり8,190.0 KiBます。

ただし、にメモリテーブルを作成しserver2て行を追加すると、そのサイズはまだわずかsome bytesです。

これはMySQLのバージョンの違いが原因ですか、それとも(うまくいけば)変​​更できる設定が原因ですか?

編集:

この動作の理由はまだわかりませんが、回避策は見つかりました。だから、将来の参考のために、これは私のためにそれを修正したものです:

私のすべてのメモリテーブルは一度作成され、そこから読み取り専用になります。テーブルの最大行数をMySQLに指定すると、そのサイズは縮小します。次のクエリはあなたのためにそれを行います。

0 投票する
2 に答える
39360 参照

mysql - max_heap_table_size値を変更しますか?

max_heap_table_sizeの制限は16mbですが、この値をどこでどのように変更できますか?

0 投票する
1 に答える
1448 参照

mysql - メモリ テーブルの主キーは HASH でなければならないのはなぜですか?

メモリ テーブルを一連のキューとして使用したいと考えています。

したがって、int 列 a および b を持つメモリ テーブルが存在します。
次のようなクエリで:
SELECT b FROM table WHERE a=? ORDER BY b DESC LIMIT 1000

私はこれを試しました:

ただし、主キーは引き続き HASH です。

  1. aということは、そのようなクエリのために別の key( ) を作成する必要があるということですか?

  2. 主キーを BTREE インデックスにできないのはなぜですか? 主キーを通常のキーに変更した場合の違いは何ですか?