データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A

1
Neo4jのノードごとのデータ量
Neo4jでは、ノードごとに大量のデータを保存する必要があります。データはテキストのUnicodeチャンクです。実際、すべてのノードに大きなチャンクがあるわけではありませんが、それらの多くには大きなチャンクがあります。 ドキュメントを探しましたが、ノードサイズ(単一ノードに含めることができるデータの量)に関する言及は見つかりませんでした。 誰にもアイデアはありますか?
14 nosql  neo4j 

2
カスタムデータ型などはありますか?
MySQLはカスタムデータ型をサポートしていますか?たとえば、郵便番号はvarchar(10)フィールドに格納されintますが、空白のオプションと5桁か5 + 4桁の郵便番号かを示すフラグを付けて、に圧縮できます。 そのようなことのためにシームレスなデータ型をインストールする方法はありますか?アプリケーションに関する限り、それは文字列型であり、アプリケーションが無効なデータを渡すと、データの切り捨て(警告の有無にかかわらず)が発生します。 カスタム関数を使用できます(たとえば、INET_ATONIPv4アドレス用の組み込み関数があります。ただし、zip LIKE '12345%'適切にインデックスを作成する必要があるものは許可されません。カスタムデータ型の適切なサポートにより、データ型をマークできます。そのため、コンパクトzip intは、並べ替えられると、まるでのように並べ替えられzip varchar(10)ます。 これにより、列の幅を固定でき、6または10バイトの変数ストレージを固定幅の4バイトに削減できます。 適用可能な用途がいくつかあります 郵便番号 IPv6アドレス 分のレベルの精度と容量を超えるカスタム2038ストレージタイムスタンプフィールドでdatetime、使用量は未満ですが、実装年より前の日付をサポートする必要はありません(システムで最も古い日付の場合、最小は2007になります) DSTを実装するタイムスタンプ(存在しないようです) 2文字の米国の州は1バイトで保存できます longはENUM、カスタムデータ型に分離DESCRIBEできるため、すべてのラッピングで出力がそれほど乱雑になりません。 データ型ハンドラーは、関数が保存される方法と同様に保存されることを期待しています。 データベースエンジンには、このようなリモートで何かがありますか?私は主にMySQLを使用しますが、これを実装したことがあるかどうか、アプリケーションに関数のような関数を呼び出させること以外は興味がありINET_ATONます。 MS SQLにはそのような性質があるように見えますが、単なる同義語以上のものかどうかを知りたいと思います。(例えばbooleanの同義語可能性がありtinyint(1)、またはpostal_codeのいずれかのcharまたはvarchar (5または9または10))シノニムは、私はおよそここに求めていたものではないです。

5
複数のデータベースを使用する場合と単一のデータベースを使用する場合の長所/短所
私は、7つのデータベースを使用する必要がある新しいプロジェクトに取り組んでおり、パフォーマンス、安定性、最適化をより簡単に実装できると主張していました。 私は同意しませんが、単一のデータベースを使用する(テーブルを論理ドメインに分割する)ための適切な引数を収集するのに問題があります。 これまでの議論の1つは、データの整合性です(データベース間で外部キーを使用することはできません)。 単一または複数のデータベースを使用する場合の長所と短所は何ですか? [これまでの概要] 複数のデータベースに対する引数: データの整合性が失われます(データベースで外部キーを使用できません) 復元の整合性を失う 複雑化(dbユーザー/ロール) 小さなオッズのサーバー/データベースがダウンします ソリューション: スキーマを使用してドメインを分離します。 POC:ダミーデータを使用して7/1 dbの実行計画のポイントを証明する

3
ユーザーデータベースの標準的な実装はありますか?
Webサイトに基本的なパーソナライズされたユーザー機能を実装する必要があります。このタイプのデータベースの標準構造はありますか?すべてのユーザー情報とデータを単一のテーブルに入れて、各ユーザーが独自の行を持っているのが一般的な慣行であるか、この情報を異なるテーブルに分割して一緒にリンクする必要があります(おそらく効率のためですか?)この時点で、しかし、私は明らかにあまりにも早くパスワードの暗号化をしたいと思うでしょう。 私はグーグルで探していたものを見つけようとしましたが、役に立ちませんでした。質問にさらなる説明などが必要かどうかをお知らせください。

2
pgAdminで列を自動インクリメントするように指定するにはどうすればよいですか?
PostgreSQLデータベースを管理するためにpgAdmin IIIを学び始めました。しかし、それは使いやすいアプリケーションではありませんでした。 pgAdmin IIIでテーブルを作成または作成した場合、整数型の列IDに「自動インクリメント」機能を追加するにはどうすればよいですか?

9
データマスキング用のツールは何ですか?(MySQL、Linux)[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 (理想的には無料のオープンソースの)データマスキングツールを探しています。そのようなものはありますか? 注:この関連する質問は、テストデータを生成するためのツールを扱っていますが、この質問では、実際のデータから始めて、テスト目的で興味深い特別な関係を失うことなくテストで使用するためにマスキングすることに興味があります。生成されたデータは一部のテスト目的には適していますが、実際のデータでは考えもしなかった問題が発生します。 テストデータの大規模なデータセットを生成するツール
14 mysql  linux  testing 


2
インデックス付きテーブルに挿入するときに最小限のログが取得されないのはなぜですか
私はさまざまなシナリオで最小限のロギング挿入をテストしており、TABLOCKを使用して非クラスター化インデックスを持つヒープにINSERT INTO SELECTを読んだことから、SQL Server 2016+は最小限に記録する必要がありますが、これを行うときは完全なロギング。私のデータベースは単純な復旧モデルであり、インデックスとTABLOCKを使用せずに、ヒープ上に最小限のログが挿入されます。 Stack Overflowデータベースの古いバックアップを使用してテストし、次のスキーマでPostsテーブルの複製を作成しました... CREATE TABLE [dbo].[PostsDestination]( [Id] [int] NOT NULL, [AcceptedAnswerId] [int] NULL, [AnswerCount] [int] NULL, [Body] [nvarchar](max) NOT NULL, [ClosedDate] [datetime] NULL, [CommentCount] [int] NULL, [CommunityOwnedDate] [datetime] NULL, [CreationDate] [datetime] NOT NULL, [FavoriteCount] [int] NULL, [LastActivityDate] [datetime] NOT NULL, [LastEditDate] [datetime] NULL, [LastEditorDisplayName] [nvarchar](40) NULL, …

2
Explainが答えを知っているのに、なぜcount(*)が遅いのですか?
このクエリ:select count(*) from planner_event実行に非常に長い時間がかかります-とても長いので、終了する前にそれをgaveめて殺しました。ただし、実行するexplain select count(*) from planner_eventと、出力に列数(14m)の列が表示されます。 Explainが行数を即座に取得できるのに、count(*)の実行に時間がかかるのはなぜですか?
14 mysql  count  explain 

3
同じテーブルの異なる列のカウントを取得する方法
表#01 Status: StatusID Status ----------------------- 1 Opened 2 Closed 3 ReOpened 4 Pending 表#02 Claims: ClaimID CompanyName StatusID -------------------------------------- 1 ABC 1 2 ABC 1 3 ABC 2 4 ABC 4 5 XYZ 1 6 XYZ 1 期待される結果: CompanyName TotalOpenClaims TotalClosedClaims TotalReOpenedClaims TotalPendingClaims -------------------------------------------------------------------------------- ABC 2 1 0 1 XYZ …
14 sql-server  pivot 

5
大きなテーブルでLEFT JOINを使用して非常に遅いSELECTを最適化する方法
私は何時間もグーグルで独学で解決策を探していましたが、運がありませんでした。ここではいくつかの同様の質問を見つけましたが、この場合は見つかりませんでした。 私のテーブル: 人(〜1000万行) 属性(場所、年齢、...) 人と属性の間のリンク(M:M)(〜40M行) フルダンプ〜280MB 状況:person_idいくつかの場所(location.attribute_value BETWEEN 3000 AND 7000)、性別(gender.attribute_value = 1)、生まれた年(bornyear.attribute_value BETWEEN 1980 AND 2000)、目の色(eyecolor.attribute_value IN (2,3))から すべての個人ID()を選択しようとしています。 これは私の魔女が3〜4 分かかったクエリです。最適化したい: SELECT person_id FROM person LEFT JOIN attribute location ON location.attribute_type_id = 1 AND location.person_id = person.person_id LEFT JOIN attribute gender ON gender.attribute_type_id = 2 AND gender.person_id = person.person_id …

4
CONCAT MySQL内のNULL値を除外する方法は?
これがある場合-taddはAddressテーブルです: CONCAT(tadd.street_number, ' ', tadd.street_name,', ', tadd.apt_number,', ', tadd.city,', ', tadd.postal_code,', ', tadd.country) AS 'Address' apt_numberが存在しない場合、除外する方法はありますか? 私は考えていました: WHERE tadd.apt_number IS NOT NULL しかし、それはでそれらの行のみを返しますapt_number、そして何かがうまくいくとしても、その余分なコンマをどのように処理しますか。 重複している場合は、コメントにリンクを投稿してください。
14 mysql  null  concat 

5
PostgreSQLサーバーのSSL証明書を調べる方法
実行中のPostgreSQLサーバーがあり、SSLが有効になっているとします。「標準」のLinuxおよびPostgreSQLツールを使用して、そのSSL証明書を調べるにはどうすればよいですか? 私はあなたが実行から得られるものに似た出力を期待していますopenssl x509 -text ...。また、1行または2行のコマンドラインでの回答を期待しているので、パケットスニファーを実行する必要はありません。 PostgreSQLサーバーにアクセスできないため、その構成ファイルを直接見ることができません。 私はスーパーユーザーのログインを持っていないので、ssl_cert_file設定の値を取得できませんpg_read_file。 openssl s_client -connect ...PostgreSQLはSSLハンドシェイクをすぐに実行したくないようであるため、使用は機能しません。 psqlドキュメントをざっと見てみると、起動時にその情報を表示するコマンドラインパラメーターが見つかりませんでした。(特定の暗号情報は表示されますが。)

1
PostgreSQLでテーブルデータをアトミックに置き換える方法
SELECTプロセス中に着信ステートメントに影響を与えることなく、テーブルの内容全体を置換したい。 ユースケースは、定期的に抽出されるメールボックス情報を保存するテーブルを持ち、PostgreSQLテーブルに保存する必要があることです。同じテーブルを常に照会しているアプリケーションを使用している多くのクライアントがいます。 通常、私は(擬似コード着信)のようなことをします... BEGIN TRANSACTION TRUNCATE TABLE INSERT INTO COMMIT ただし、残念ながらこのプロセス中にテーブルを読み取ることはできません。INSERT INTO完了するまでに時間がかかるためです。テーブルはロックされています。 MySQLでは、RENAME TABLEこれらの問題を回避するためにアトミックコマンドを使用していました... CREATE TABLE table_new LIKE table; INSERT INTO table_new; RENAME TABLE table TO table_old, table_new TO table; *atomic operation* DROP TABLE table_old; PostgreSQLでこれをどのように実現できますか? この質問の目的のために、私は外部キーを使用していないと仮定できます。
14 postgresql 

1
MySQLの既存のトリガー定義を変更することはできますか?
MySQLでトリガー定義を更新できるかどうか疑問に思っています。たとえば、トリガーTがあり、いくつかの新しい機能を追加したいです。 私の想定では、ドロップして再作成する必要があります。 このようなシナリオのデータベース管理のベストプラクティスは何ですか?
14 mysql  trigger  update 

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