データベース管理者

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


2
phpMyAdminが読み込まれるたびにInnoDBでCOUNT(*)
innodbが遅いのは既知の問題です SELECT count(*) FROM Table したがって、私はそれを避けました。しかし、phpmyadminにログインするたびにcount(*)、19k行のinnodbテーブルが自動的に実行され、実行に最大1分かかることがあります。それでもcount(*)、400万行を含む他のinnodbテーブルでは、このような処理は開始されません。 phpmyadminの別の手掛かりとして、[レコード]列の下にある、19k行のテーブルのレコード数は正確な値を示していますが、400万行のテーブルはおよその値を示しています。 私はinnodbテーブルが行数の見積もりを与えることを理解しています。しかし、この例では1万9千行の小さなテーブルの場合、phpmyadmin count(*)は単に見積もりを行うのではなく、を行うことにしました。 質問は、phpmyadminが私のinnodbテーブルでこのようなカウントを実行しないようにする方法はありますか?phpmyadmin画面を更新するたびに、高額な行数を計算する代わりに、見積もりを出すだけでかまいません。
8 mysql  innodb 

2
デジタル資産のデータベース
私は古い印刷ジョブのまともなサイズのアーカイブがあるプリントショップで働いています。現在、ジョブを見つけるには、数十万のファイルを検索するSMB共有(win2000サーバー上)を検索する必要があります。 ジョブデータは、「年」>「月」>「Customer_Name_Job#」で編成され、ジョブの内容は最後のフォルダー内にあります。 ジョブの説明をクエリできるようにデータベースを作成する方法はありますか?またはジョブ番号?基本的には、Windows検索での検索よりも高速な単純な検索が優れています。Windowsインデックスサービスを試しましたが、.docファイルしか見つかりません。フォルダ名やPDFは見つかりません。 将来的には、ジョブの作成時に完全な情報が入力されるSQLデータベースを作成して、将来簡単にクエリできるようにすることを計画しています。古い注文の検索が簡単になるようなものを一緒に投げたいと思っていました。


3
MySQLはWindows Server 2008でバックアップをスケジュールするためにどのようなメカニズムを使用しますか?
Windows Server 2008で実行されているMySQLサーバー(v5.1.45-community)でデータベースバックアップをスケジュールする場合、バックアップの実行をトリガーするためにどのようなメカニズムが使用されますか?Windowsタスクスケジューラを使用していると思いますが、これらのバックアップの明確なタスクはありません。SQL Serverは別のエージェントサービスを使用します。MySQLに同様のものはありますか? 追加情報:バックアップはMySQL Administratorでセットアップされました。バックアップのスケジュール方法は知っていますが、実行されていません。トラブルシューティングを開始する場所についての洞察を探しています。
8 mysql  backup  windows 

1
列でALTER TABLEを実行すると、列がNOT NULLからNULLになるのはなぜですか?
SQL Serverデータベースを一括更新しています。すべてのnumeric(38,0)列をint (はい、SQL ServerスクリプトはOracleスクリプトから作成されました)に変更しています。SMOとC#(私はswエンジニアです)を使用して、SQL Server Management Studioのように本当に素晴らしいスクリプトを生成することができました。1つの特定の問題を除いて、すべて非常にうまく機能します。 ほんの一握りのテーブルのために、私がALTER TABLE [myTable] ALTER COLUMN [columnA] INTそれを呼び出すと、列もから変更することにしますNOT NULL to NULL。もちろん、それらの特定の列にあるほとんどのテーブルの主キーを再生成する必要があるため、これは大きな問題です。 明らかに、私はSMOを使用して、どの列が主キーであるかを見つけ、データ型の更新中または更新中にそれらを強制的にNOT NULLにする多くのオプションを持っていますが、これが何が原因であるかについては本当に興味があります。


2
関係のないER図にエンティティがあっても問題ありませんか?
私はクラス割り当てのERダイアグラムを作成していますが、他のエンティティと直接の関係がないエンティティを作成し、外部キーを使用してそれらを接続することは可能だろうかと考えていました。下の図は、私がやりたいことを示しています 基本的に、私のダイアグラムは非常に複雑になり始めており、すべてのエンティティ間の接続を維持する必要がなかったとしたら、それは素晴らしいことです。 FWIW、それが助けになれば、Chen and Crow's Foot表記を使用しています。

2
このwhere句を結合に置き換えるにはどうすればよいですか?
通常、次のようなSQLを使用している場合: select * from employees where epmloyeeTypeId in (select id from type where name = 'emp') 私whereはこれで置き換えます: select e.* from employees e inner join type t on t.id=e.epmloyeeTypeId and t.name = 'emp' それが句not inではなく(以下のように)である場合、逆で同じことをすることは可能inですか? INSERT into Subscriptions(ProjectId, RecordTypeCID, NTID, Active, Added, LastUpdate, UpdateBy) SELECT @ProjectId, RecordTypeCID, @NTID, 1, GETDATE(), GETDATE(), …

2
MySQLユーザーがシステムに存在するかどうかを確認するにはどうすればよいですか?
show grants for 'username'@'localhost''ユーザー名が少し異なると思うので、ユーザーを見つけることができません。そのため、すべてのデータベースユーザーのワイルドカード検索を実行したいと考えています。これどうやってするの? 更新:明確にするため、多分私は100%明確にしていないと思います。ワイルドカードによって、ユーザー名の一部のみ、または名前がパターンに一致するすべてのユーザーを検索できるようにしたいと思いました。5k以上のユーザーがいるシステムでこれが必要だったので、パフォーマンスの低下はそれほど大きくはありませんが、一度に1つずつ確認したくありません。
8 mysql 

2
大きなInnoDBテーブルにPRIMARY KEYを追加する良い方法は何ですか?
MySQL 5.5でInnoDBストレージエンジンを使用して約3,000万行のテーブルがあります。このテーブルには、約300万行の別のテーブルにリンクする外部キーがあります。 より大きなテーブルに主キーを追加したいのですが、これをどのように行うのが最善かわかりません。これに使用できる既存の列(または列のセット)がないので、どうすればよいですか? 内部InnoDBレコードIDへの参照をいくつか見ましたが、これがアクセス可能かどうかはわかりません。 それ以外の場合は、おそらくデータをダンプしてリロードし、IDを手動で追加する必要があります。 ありがとう。

3
max_allowed_pa​​cketを変更しても「Packet Too Large」エラーが発生する
mysqldumpを使用して、バックアップ用のフラットファイルを作成します。このファイルを使用して、代替サーバーでデータベースを再作成しました。コマンドラインでsshを使用してインポートプロセスを実行したところ、複数のPacket too Largeエラーが発生しました。 より大きなmax_allowed_pa​​cket(つまり、1000M)でmysqlを再起動しても、エラーが発生しました。インポートファイルでmax_allowed_pa​​cketを設定しようとしても、エラーが発生しました。 max_allowed_pa​​cketが設定されていることを確認する方法や、この問題を引き起こさないファイルを作成するmysqldumpを使用する方法はありますか? 参考のために: 非圧縮のmysqldumpファイルは〜2GB データベースタイプはINNODBです

1
フルプランキャッシュの動作
SQL Server 2005では、プランキャッシュがいっぱいになるとどうなりますか?私はいくつかの調査を行いましたが、収集された小片から、キャッシュされたプランには、その重み、つまりコンパイルのコストに、キャッシュされてから実行された回数を掛けた「年齢」が与えられているようです。時間が経過すると、この経過時間は減少して0になり、「経過時間」と見なされ、必要に応じてフラッシュの候補になります。プランのキャッシュがいっぱいになると、期限切れのプランがキャッシュからフラッシュされます。 このシナリオを複雑にするために舞台裏で起こっていることは他にありますか? おかげで、 マット

5
MySQL:プレフィックスで始まるDROP TABLE
例:プレフィックス「dp_」で始まる30を超えるテーブルと、「ex_」で始まる約12のテーブルがあります。 質問:「dp_」で始まるすべてのテーブルを1つのクエリで削除するにはどうすればよいですか?
8 mysql 

1
Linuxでデータポンプエクスポートのリソース使用量を制限するにはどうすればよいですか?
多数のユーザーのエクスポートを実行すると、CPUおよびI / Oの使用率が高くなります。リソースマネージャーを使用してCPU使用率の影響を軽減し、エクスポートセッションを優先度の低いグループに設定できますが、ディスクI / Oを制限するにはどうすればよいですか?操作を並行して実行しておらず、すでにOracleのDatapump Performanceのドキュメントを読んでいます。他に何かできることはありますか?

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