問題タブ [database-engine]
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.
sql - 単純なデータベース エンジンの作成方法
データベース エンジンがどのように機能するか (つまり、その内部) を学ぶことに興味があります。私は、CS で教えられている基本的なデータ構造 (ツリー、ハッシュ テーブル、リストなど) のほとんどを知っているだけでなく、コンパイラ理論についてもかなりよく理解しています (非常に単純なインタープリターを実装しています)。データベース エンジンの作成について。この件に関するチュートリアルを検索しましたが、何も見つからなかったので、他の誰かが私を正しい方向に向けてくれることを願っています. 主に以下の情報をお願いします。
- データが内部でどのように保存されているか (つまり、テーブルがどのように表現されているかなど)
- エンジンが必要なデータを見つける方法 (例: SELECT クエリの実行)
- 高速かつ効率的な方法でデータを挿入する方法
また、これに関連する可能性のあるその他のトピック。オンディスク データベースである必要はありません。その背後にあるプリンシパルを学びたいだけなので、インメモリ データベースでも問題ありません (簡単であれば)。
助けてくれて本当にありがとうございます。
sybase - テーブル選択を強制的にブロックを越える方法
どうすれば、Sybase のデータベース エンジンがレコードのソートされていないリストを数値順以外で返すようにできますか?
~~~
ID が順番に生成されるテーブルから選択するアプリケーションでエラーを再現する必要があるという問題がありますが、ID は選択の最後の ID ではありません。
説明させてください。
上記は3つのIDです。これらがの結果になるコードがありました
ただし、status = 'O' (オープン) をチェックする句はありませんでした。Sybase は最後に返されたレコードを変数に保存することを思い出してください。
~~~~~
テストチームに、結果が機能しないものを提供するよう求められています。Sybase が順序付けされていないリストで上記を選択すると、昇順で表示される可能性があります。または、データベース エンジンが格納されたデータのブロックまたは何か技術的なマジックを変更する必要がある場合、順序がめちゃくちゃになる可能性があります。元のエラーは、プロシージャーが 1236 ではなく 1234 を返す場合でした。
Sybase がデータのブロックを検索し、効果的に昇順検索を「中断」して、最後のレコードではなく他のレコードを返すように100% 保証できる方法はありますか? (最大値を除くすべてのレコードは、すべて「クローズ」されているため、エラーになります)
テーブルを正確な数値順に検索しないようにする魔法の SQL コードが必要です。理想的には、テスト チームはまったく同じ手順が壊れていることを確認したいので、手順を変更する必要はありません (order by id desc
結果をごまかすのと同じくらい簡単です)。
sql-server-2008 - データベース エンジンが SQL Server の一覧に表示されない
Google で間違ったクエリを検索しているかどうかはわかりませんが、これに対する答えが見つからないようです。私のPCにはSQL Server 2008がインストールされており、services.mscによると、SQLEXPRESS(おそらくVisual Studioに付属しているもの)とMSSQLSERVERの2つのデータベースエンジンが実行されています。接続しようとすると、[サーバー名] ドロップダウン リストに SQLEXPRESS のみが表示されます。入力してMSSQLSERVERを明示的に指定しようとしました
MYPCNAME\MSSQL サーバー
うまくいきませんでした。インターネットで見つけた最善の解決策は、Configuration Manager で有効にすることでした。どちらも機能しませんでした (ただし、MSSQLSERVER では TCP/VIA と他のすべてのオプションが無効になっていることがわかりました)。
私が次に何を試すべきか、またはおそらく私が見落としたことについて、他に何か考えがある人はいますか?
sql-server-express - SQL Server Compact Edition と SQL Server Express Edition の違いは何ですか?
SQL Server Compact Edition と SQL Server Express Edition の主な違いは何ですか?
これまたはあれをどのような目的で使用する必要がありますか?
ありがとう
mysql - ソーシャルサイト向けデータベース・DBエンジン
ユーザー プロファイル、ライブ フィード、写真/ビデオ/コンテンツの共有など、ユーザー コンテンツの多い Web サイトの場合、どの DB を使用し、どの DB エンジンを使用しますか? もちろん、Oracle/Microsoft sql は無料 (または安価) ではないため、使用できません。MyISAM で MySQL を使用していますが、ソーシャル サイトでパフォーマンスの問題が発生します。InnoDB を使用しても、パフォーマンスが向上しない場合があります。ではまず、無料から有料まで、どの DB とどのエンジンを使用するのがよいのでしょうか?
主な関心事は、ライブ フィードのパフォーマンスです。さらに、多くのデータ追跡と分析によるマイニングがあります。
これはスタートアップであるため、ハードウェアのコストは限られているため、パフォーマンスをサポートするハードウェア ファームはありません。したがって、少なくとも最初の 2 年間はまともな代替手段を探しています。
mysql - MySQL データベース エンジンとは何ですか?
調べてみると、MySQL エンジンのいくつかが innodb と MyISAM であることがわかりました。もしかしたら、あと数個かもしれません。私の質問は、これらのデータベース エンジンとは何ですか?
異なる MySQL エンジンの違いは何ですか? さらに重要なことは、どちらを使用するかをどのように決定するのですか?
sql-server - クエリを介してデータベースエンジンに接続する
SQL Server Management Studioを開くと、UIを介してデータベースエンジンに接続します。SQLクエリを介して同じ機能が必要です。たとえば、データベースに接続します。同様に、データベースエンジンに接続する方法はあります。
mysql - サイトごとのパーソナライズされたユーザー アクセスの MySQL 構造は?
各アクセスレベルで許可されたパーソナライズされたコマンドを使用して、クライアントごとに異なるアクセス名を持つための適切なパーソナライズされた方法を持つのに役立ついくつかのテーブルを構築するために、いくつかの助けが必要です。
クライアント A がサイト Y を作成し、次のアクセス グループを作成したいとします。
- 管理者 (すべてのアクセス権を持っている)、
- VIP(ルーム1にアクセス可能)、
- ベーシック(ラウンジアクセス可)、
- 禁止(一切入場不可)
クライアント A が自分のパーソナライズされたアクセスを作成するのと同じ方法で、他のすべてのクライアントが独自のパーソナライズされたアクセスを作成できるようにして、自分の言語に適していると思われる名前を付けて、後でアクセスできるコマンドを入力できるようにしたいと考えています。その特定のアクセスレベルにいること。
例として次の表があります(これはデータグラムではなく、例を作成するとワークベンチがクラッシュし続けます。ワークベンチと同等またはそれ以上のデータグラムを作成するための代替案については、自由に提案できます):
クライアント テーブル:
/li>サイト表:
/li>テーブルへのアクセス:
/li>site_access テーブル
/li>コマンド
/li>
私のアプリケーションでは、すべてのコマンド アクションが事前に定義されており、ユーザーはそれらの動作やデフォルト名を変更することはできませんが、エイリアスを作成することは許可されています。
たとえば、私がコマンド kick を持っているとしましょう。"k" または "explosion" という名前のエイリアスを作成するか、エイリアスに好きな名前を付けることができます。
私の疑問のいくつか:
最初に、site_access を使用してすべてをリンクすることを考えました。サイトにアクセスできるクライアントと、サイトにアクセスできるクライアント、およびそれぞれのアクセスから各コマンドにアクセスするのは良い方法ですか?
データベースから取得されるコマンドはたくさんありますが、独自のエイリアスを持っているものもあるため、アクセスにビットマスクを使用でき、null でない場合でもエイリアスを照会できるので、リストを使用する必要があります。コマンドのまたは良いオプションはありますか?
私の場合、InnoDB または MyISAM のどのエンジンを使用する必要がありますか?
エンジンを混在させても大丈夫ですか、それともまったく良い考えではありませんか?
現在のテーブル構造で何を変更する必要がありますか? (可能であれば)サンプルも提供していただけますか?
アップデート:
mysql - MySQL データベースのサイズの見積もり
私は、ユーザー用のテーブル (フィールド * typelength のカウントに基づいてユーザーごとに 1kbyte のデータ) と、ユーザーに属する同じサイズの約 100 個の物 (物ごとに 0.5kbyte) を持つアプリケーションデータベースを持っています。 " テーブルと "物" テーブル。
これにより、ユーザーあたり約 51k バイトのデータが発生するようです。ただし、MySQL の場合、インデックス テーブルをカバーするために 2 倍にする必要があると聞きました。これにより、ユーザーあたり 102k バイトになります。MySQL で考慮すべき他のデータ拡張要素はありますか? または 102 キロバイトが適切な見積もりですか?
インデックス係数 (これは 2 だと思います) とストレージ効率 (これも 2 だと思います) 以外に、MySQL でのデータ ストレージの乗数はありますか?
mysql - ブログの実装に最適なデータベースストレージエンジンはどれですか?
重複の可能性:
MySql:MyISAMとInno DB!
私はMySqlを使用してphpでブログを実装しています。
すべてのエンジンが、BLOB(バイナリラージオブジェクト)やTEXTタイプなど、頻繁に使用する必要のある特別なフィールドタイプをサポートしているわけではありません。
さらに、外部キーメカニズムを使用して、投稿へのコメント、および投稿のさまざまな可能なアーカイブを管理する必要があります。
効率と機能の観点から、どのデータベースストレージエンジン(MyISAM、InnoDB、..)を使用するのが最適ですか?