問題タブ [mysql-cluster]
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 - ランダム主キーは MySQL Cluster の落とし穴ですか?
InnoDB エンジンは、そのストレージ メカニズム (インデックス レイアウトなど) を主キーに大きく依存していることを理解しています。したがって、非連続主キー (ランダムな 15 桁の整数など) を使用することはお勧めできません。主キーの BTree が頻繁に (体系的とは言えませんが) 再構築されるため、テーブルへの挿入が指数関数的に遅くなります。
アプリケーション データベースをホストするために MySQL Cluster をセットアップすることを検討していましたが、これは書き込み集中型の負荷をサポートする必要があります (1 日約 200 万回の操作で約 40% の書き込み)。NDB レコードがプライマリ キー ハッシュを使用してクラスターのノード間でレコードを分散していることを考えると、この制限がこのエンジンにも適用されるかどうか疑問に思っていました。
逆に、ランダム性はデータを均等に分散するのに役立つと最初に推測しますが、それに関する正確な情報を見つけることができません。それで、誰かがこの問題について洞察を持っていますか?
mysql - ログファイルを使用した MySQL クラスターのダンプ
これは、MySQL クラスターで私が抱えている問題であり、かなり明白なことのように思えるので、あなたの 1 人が答えを持っていることを願っています。
もちろん、CREATE LOGFILE GROUP / CREATE TABLESPACE コマンドを含む MySQL クラスター データベースのダンプファイルを作成しています。次の2つのことのいずれかを行う方法はないようです。
1)理想的には、ログファイル/テーブルスペースの「DROP LOGFILE GROUP IF EXISTS」のバージョンを含むダンプファイルを作成して、既存のデータベースにそれらをインポートし、22行目で「エラー1528(HY000)」を生成せずにデータを上書きできるようにします。 LOGFILE GROUP' エラーの作成に失敗しました。
現状では、ログファイルの作成をインポートする前にダンプファイルから削除するスクリプトを作成することしかできませんが、データベースには既にそれらがあるため、これはあまり役に立ちません。
2)それ以外の場合、ログファイル/テーブルスペースを作成せずにダンプファイルを生成する別の構文があれば、それも機能します。
DROP IF EXISTS 構文がログファイル/テーブルスペースに存在する必要があるようですが、何か不足していない限り、そうではないようです。
これについて何か助けていただければ幸いです。
よろしく、ジョン。
mysql - MySQL Cluster でのリモート データ ノードの起動の問題
私は MySql Cluster で遊んでいて、一般的ではない構成の問題に直面しました。ほとんどのチュートリアルでは、データ ノードと MySQL サーバー ノードが同じ PC に存在する構成について説明します。しかし、管理ノードと MySQL サーバー ノードを PC 'A' に、データ ノードを PC 'B' に配置しようとしています。残念ながら、データ ノード ndbd.exe を実行しようとするとすぐにシャットダウンし、Windows イベント ビューアに次のメッセージが残ります: : 間違ったホスト ip pcB.ip.address' から接続が行われました。 ".
私の構成ファイルは次のとおりです。
PC 'A' config.ini:
PC 'A' 上の mysqld によって使用される my.cnf:
PC 'B' 上の my.cnf:
上記のファイルの何が問題なのか誰か教えてください。私が言ったように、そのようなクラスター構成のチュートリアルは見つかりませんでした。
前もって感謝します。
php - Web アプリケーションをスケーリングする方法
私の基本的な質問は次のとおりです: 急速に成長する可能性のある Web アプリケーションの構築を開始するにはどうすればよいですか?
ちょっとした背景: 私の顧客が Web アプリケーションのオファーを求めています。詳しくは言えませんが、eコマースとクラウドファンディングのようなものです。そのため、彼はいくらかのお金を使いたいと考えており、無制限に成長できるサイトを期待しています。
Zend Framework 2 と MySql でビルドする予定です。私の問題は、大規模な Web アプリケーションの経験がないことです。私はどこでも読んでいます:問題ありません。プロジェクトを開始するだけで、プロジェクトが大きくなった場合は、それに反応してキャッシング、クラスタリングなどを追加できます.
しかし、これは本当に正しいのでしょうか?それとも、最初からスケーラビリティ メカニズムを追加する必要があるのでしょうか? たとえば、クラウド サーバー (Amazon EC2) は、ファイル システムに対して異なるアプローチを採用しています。後で切り替えることは可能ですか?または、ロード バランシングについてはどうでしょうか。セッション処理で問題が発生しますか? そしてMySqlはどうですか?または、NoSql アプローチから直接開始することをお勧めします。
したがって、私の現在の計画は次のとおりです。
- ステップ 1: ZF2 と MySql を使用して通常どおり Web アプリケーションをビルドします。
- ステップ 2: memcache や opcode などのキャッシングを追加する
- ステップ 3: MySql クラスターまたは NoSql または負荷分散またはクラウド サーバー??
アップデート:
わかりました、私の質問が少し広すぎることはわかっています。だから私はそれをいくつかの特定の質問に追跡しようとします:
- クラウドサーバーから直接始めたほうがいいですか?
- クラウドサーバーは無制限に拡張できますか?
mysql - 2 つの mysqld(API) を使用する Mysql クラスターにより、アクセスごとに異なるテーブルが生成される
4 つのデータ ノードと、それぞれにアクセス (API) ノードと管理ノードを備えた 2 つのサーバーを備えた mysql クラスターを実行しています。
API ノード 1 を使用してテーブルを作成すると、API ノード 2 でアクセスしようとすると存在しないと表示されます。これがなぜなのか、またはそれを修正する方法を誰でも説明できますか。2 つの別々のサーバーで 2 つの API ノードを実行するポイントは、冗長性のためです。
以下の SHOW 構成を参照してください (ips を削除しました)。
回答するためにさらに情報が必要な場合は、お問い合わせください。質問を更新します。
java - 「テーブル メタデータを取得できませんでした」「NDBCLUSTER からエラー 157 '不明なエラー コード' を取得しました」
Java Web アプリケーションを開発しており、データベースに MySQL Cluster を使用しています
アプリケーションを Jboss サーバーにインストールしようとすると、このエラーが発生します
.... org.hibernate.exception.GenericJDBCException: テーブル メタデータを取得できませんでした: MY_TABLE_NAME .... 原因: java.sql.SQLException: NDBCLUSTER からエラー 157 '不明なエラー コード' が発生しました
環境情報:
- 製品環境
- jbos EAP 6.2
- 2 つのデータ ノードを持つ mysql クラスター
- jboss データ ソース URL : jdbc:mysql:loadbalance://< ip-1 >,< ip-2 >/BASE_NAME?loadBalanceBlacklistTimeout=5000