タグ付けされた質問 「mysql」

MySQLは、オープンソースのリレーショナルデータベース管理システムです。

13
データをディスクに保存するだけでなく、データベースを使用する理由は何ですか?
データベースの代わりに、データをJSONにシリアル化し、必要に応じて保存してディスクにロードします。すべてのデータ管理はプログラム自体で行われ、SQLクエリを使用するよりも速くて簡単です。そのため、なぜデータベースが必要なのか理解できませんでした。 データをディスクに保存するだけでなく、データベースを使用する必要があるのはなぜですか?
193 database  sql  mysql  nosql 

12
大きなファイル(10 MB)をデータベースに保存するのは悪い習慣ですか?
現在、ユーザーが1 MB〜10 MBのサイズのファイルを保存および共有できるWebアプリケーションを作成しています。 データベースにファイルを保存すると、データベースアクセスが大幅に遅くなるように思えます。 これは有効な懸念事項ですか?ファイルシステムにファイルを保存し、データベースにファイル名とパスを保存する方が良いでしょうか?データベースを操作する際のファイルの保存に関連するベストプラクティスはありますか? 私はこのプロジェクトでPHPとMySQLを使用していますが、ほとんどの環境(Ruby on Rails、PHP、.NET)およびデータベース(MySQL、PostgreSQL)で同じ問題があります。

22
ストアドプロシージャは、世界最大のITソフトウェアコンサルティング会社の1つで悪い習慣ですか?
私は世界のトップ3のITコンサルティング会社の1つのプロジェクトで働いており、DBAから、会社のベストプラクティスのステートストアドプロシージャは「ベストプラクティス」ではないと言われました。これは私が学んだことすべてに反している。 ストアドプロシージャにより、コードの再利用、カプセル化(ソフトウェア開発の2つの柱)、セキュリティ(個々のストアドプロシージャに対するアクセス許可の付与/取り消しが可能)、SQLインジェクション攻撃からの保護、スピードの向上(DBAによるとSQL Server 2008以降では、通常のSQLクエリでも十分な回数実行されるとコンパイルされます)。 アジャイルソフトウェア開発方法論を使用して複雑なアプリを開発しています。誰もがストアドプロシージャを使用したくない理由を考えることができますか?私の推測では、DBAはこれらのストアドプロシージャを維持することを望んでいませんでしたが、そのような設計上の決定を正当化するには、あまりにも多くのネガが存在するようです。

3
構造化ロギングと基本ロギングの利点
新しいアプリを作成しています。構造化されたログを含めたいと思います。私の理想的なセットアップはSerilog、C#コードとBunyanJSのようなものです。これらはfluentd、いろいろなものに食い込んでから出て行くことができると、最初は考えていましたelasticsearch + kibana。MySQLデータベースはすでにあるので、短期的にはSerilog + Bunyanのセットアップと開発者がそれを使用することに興味があり、もう少し時間をかけてfluentdと残りを取り込む間にMySQLにログインできます。 :しかし、私たちの経験豊富なプログラマーの一つは、単にような何かを好むlog.debug("Disk quota {0} exceeded by user {1}", quota, user);使用log4netして、同じようにMySQLのに対してSELECT文を実行します:SELECT text FROM logs WHERE text LIKE "Disk quota"; そうは言っても、どのアプローチがより良いか、ロギングシステムのタイプを選択する際にどのようなことを考慮する必要がありますか?
110 c#  javascript  mysql  logging 

10
「テーブルから選択*」が悪い習慣と見なされる理由
昨日、私は「趣味」のプログラマーと話し合っていました(私自身はプロのプログラマーです)。私たちは彼の仕事のいくつかに出会い、彼は彼のデータベースのすべての列を(実動サーバー/コード上でも)常に照会すると言いました。 私は彼にそうしないように説得しようとしたが、まだそれほど成功していなかった。私の意見では、プログラマーは、「可愛さ」、効率、およびトラフィックのために実際に必要なものだけを照会する必要があります。私の見方に誤りがありますか?
96 database  sql  mysql  bad-code 

3
MariaDBとMySQLの違いは何ですか?
MariaDBとMySQLの違いは何ですか?私は両方にあまり詳しくありません。私は主にフロントエンド開発者です。 それらは構文的に似ていますか?これら2つのクエリ言語はどこが違うのですか? ウィキペディアでは、ライセンスの違いについてのみ言及しています。 MariaDBは、MySQLデータベースのコミュニティ開発ブランチであり、その推進力は、Oracleが現在所有しているMySQLライセンスステータスの不確実性とは対照的に、GPLの下での無料ステータスのコミュニティ維持です。

15
セキュリティで保護されたデータベースに保存されているパスワードを暗号化する必要があるのはなぜですか?
Webサービスがあります。現在、サーバー上のMySQLテーブルにプレーンテキストでパスワードを保存しています。私はこれがベストプラクティスではないことを知っています。それが私がそれに取り組んでいる理由です。 セキュリティで保護されたデータベースに保存されているパスワードを暗号化する必要があるのはなぜですか?誰かが私のデータベースにハッキングすると、全員のパスワードを取得することに気付きます。しかし、誰かが私のデータベースに入った場合、たとえばデータの削除など、他の問題があります。 私が考えることができるシナリオは、あなたがハッキングされているということです。数時間前からデータベースを復元すると、すべてが順調です。ただし、パスワードがプレーンテキストの場合...泥棒はすべてのパスワードを持っているため、すべてリセットする必要があります。ユーザーの面倒。 パスワードが暗号化されている場合は、以前のデータベースに復元するだけで済みます。これは正しい考えですか?

6
データベース構成に関しては、Latin-1をUTF-8で使用する必要がありますか?
私が働いている会社でMySQLを使用しており、Ruby on Railsを使用してクライアント向けアプリケーションと内部アプリケーションの両方を構築しています。 ここで働き始めたとき、私は今まで遭遇したことのない問題に遭遇しました。実稼働サーバー上のデータベースはLatin-1に設定されます。これは、ユーザーがUTF-8文字をコピーして貼り付けるユーザー入力があるたびに、MySQL gemが例外をスローすることを意味します。 私の上司は、これらのほとんどが印刷できない文字であるため、これらの「悪い文字」と呼び、それらを取り除く必要があると言います。これを行う方法はいくつかありますが、最終的にはUTF-8文字が必要な状況に陥りました。さらに、特にこの問題について読んだ唯一の解決策はデータベースをUTF-8に設定することであるように思えるので、少し面倒です(私にとって理にかなっています)。 Latin-1に固執することについて聞いた唯一の議論は、印刷できないUTF-8文字を許可すると、MySQLでテキスト/フルテキスト検索が台無しになる可能性があるということです。これは本当ですか? UTF-8ではなくLatin-1を使用する他の理由はありますか?それが優れており、よりユビキタスになることは私の理解です。

11
データベース内のテーブル間のリレーションを定義する必要がありますか、それともコードで定義する必要がありますか?
私の経験では、過去に読んだプロジェクトの多くは、データベースにリレーションシップ定義を持たず、代わりにソースコードでのみ定義していました。だから私は、データベースとソースコード内のテーブル間の関係を定義することの利点/欠点は何なのかと思っていますか?より広範な質問は、カスケード、トリガー、手順などの現代のデータベースの他の高度な機能に関するものです...私の考えにはいくつかのポイントがあります。 データベース内: 設計からの正しいデータ。無効なデータを引き起こす可能性のあるアプリケーションエラーを防ぎます。 アプリケーションがデータの整合性をチェックするためにより多くのクエリを作成する必要があるため、データを挿入/更新する際のアプリケーションへのネットワークラウンドトリップを削減します。 ソースコード内: より柔軟。 複数のデータベースにスケーリングする場合は、リレーションがクロスデータベースになることがあるため、より良いです。 データの整合性をさらに制御します。データベースは、アプリケーションがデータを変更するたびに確認する必要はありません(複雑さはO(n)またはO(n log n)(?)です)。代わりに、アプリケーションに委任されます。また、アプリケーションでデータの整合性を処理すると、データベースを使用するよりも詳細なエラーメッセージが表示されると思います。たとえば、APIサーバーを作成するときに、データベースでリレーションを定義すると、何かが(参照されているエンティティが存在しないなど)うまくいかない場合、メッセージとともにSQL例外を受け取ります。簡単な方法は、「内部サーバーエラー」が発生したことをクライアントに500で返すことであり、クライアントは何が問題なのかわかりません。または、サーバーはメッセージを解析して何が間違っているのかを判断できます。これはmyい、エラーが発生しやすい方法です。アプリケーションにこれを処理させると、 他に何かありますか? 編集:Kilianが指摘しているように、パフォーマンスとデータの整合性についての私の論点は非常に間違っています。そこで、自分のポイントを修正するために編集しました。データベースで処理できるようにすることは、より効率的で堅牢なアプローチになることを完全に理解しています。更新された質問を確認して、それについて考えてください。 編集:みんなありがとう。私が受け取った答えはすべて、制約/関係をデータベースで定義する必要があることを指摘しています。:)。もう1つ質問がありますが、この質問の範囲外であるため、別の質問として投稿しました:APIサーバーのデータベースエラーを処理します。いくつかの洞察を残してください。

4
GitでMySQLデータベースをバックアップするのは良い考えですか?
アプリケーションのバックアップ状況を改善しようとしています。DjangoアプリケーションとMySQLデータベースがあります。Gitでデータベースをバックアップすることを提案する記事を読みました。 一方で、データとコードのコピーを同期させておくので気に入っています。 しかし、Gitはデータ用ではなくコード用に設計されています。そのため、コミットごとにMySQLダンプを比較する多くの余分な作業を行うことになります。保存する前にファイルを圧縮しても、gitはファイルを差分しますか? (現在、ダンプファイルは100MB非圧縮、bzip圧縮時は5.7MBです。) 編集:コードとデータベーススキーマの定義は既にGitにあります。これは実際にバックアップすることを心配しているデータです。
57 database  git  mysql  django 

4
辞書WebサイトにMySQLを使用するのはなぜ悪い考えですか?
辞書のエントリ(通常は単一の単語)とその意味を別の言語で保存するデータベースを設計および設定する予定です。したがって、たとえば、テーブル用語集にはエントリと定義が必要であり、各テーブルレコードには、格納されているレコードのIDへの参照がありますTag(各エントリにはタグまたはカテゴリが必要です)。 私のデータは構造を持っているので、SQLデータベース(MySQLなど)を使用することは悪い考えではありません。しかし、人々はMongoDBの方がパフォーマンスがはるかに優れていると言います。 クライアント側では、アプリケーションは、バックエンドが提供するREST APIを使用するオートコンプリートを備えた検索ボックスを提供できる必要があります。このようなシナリオでMySQLを使用するのは安全ですか?または、これに他のソリューションのMongoDBまたはElasticSearchを使用する必要がありますか?このようにして、数十万件のレコードが保存およびアクセスされることになっています。

2
モバイルアプリのデータ同期-複数のデバイス、複数のユーザー
初めてのモバイルアプリの構築を検討しています。アプリケーションのコア機能の1つは、複数のデバイス/ユーザーが同じデータにアクセスできることです。すべてのデバイス/ユーザーはCRUD権限を持ちます。 アーキテクチャには、すべてのデータが保存されている中央サーバーが必要だと思います。デバイスはAPIを使用してサーバーと対話し、データ操作(レコードの追加、レコードの編集、レコードの削除など)を実行します。 データの同期が問題になるシナリオを想像します。アプリケーションがインターネットに接続されていないときに機能する必要があるため、この中央サーバーと通信できないと想定します。そう: ユーザーAはオフラインで、レコード#100を編集しています ユーザーBはオフラインで、レコード#100を編集しています ユーザーCはオフラインで、レコード#100を削除します ユーザーCがオンラインになります(おそらく、レコード#100がサーバー上で削除されるはずです) ユーザーAとBはオンラインになりますが、編集したレコードはもう存在しません 上記に類似したあらゆる種類のシナリオが考えられます。 これは一般的にどのように処理されますか?私はMySQLを使用する予定ですが、そのような問題に適切でないのではないかと思っています。
42 database  mysql  data  mobile 


3
データベースのテキスト列にvarcharを使用する理由はありますか?
あるvarcharだけで残りは以前からtext周囲に来た、またはあなたが考えケースが使用されたい使用するにはvarchar?(またはcharそのことについて..) (私は毎日PostgresとMySQL(MyISAM)を使用しているので、それらは私が最も興味を持っているものですが、他のデータベースへの回答はもちろん歓迎です。^ _-)

1
btreeとrtreeのインデックス作成の違いは何ですか?
MySQLWorkbenchで、デザインをフォワードエンジニアリングする前にインデックスを保存する方法を選択できることに気付きました。ストレージタイプは次のとおりです。 BTREE RTREE ハッシュ これを調査して、頭上にある情報を見つけたので、これらの違いや、なぜ選択する必要があるのか​​、あるいはその両方に関する実用的な情報を探しています。 また、ストレージタイプを選択したことがないため、MySQLがデフォルトのストレージタイプ(BTREE?)を選択していると思います。

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