2009-04-19 18 views
3

この質問が当てはまるかどうかはわかりません。しかし、私はmysqlの基本的なCRUDコマンドをすべて知っています。おそらくもう少しここに(外来キーなど)。しかし、mysql/dbmsには非常に多くの書籍が書かれています。私はまともな質問を書いて、私が望むようにすべての結果を得ることができます。たぶん彼らは最も効率的ではないが、それは働いている。それは私のアプリがfacebookをarentするので、それは私が最適化について心配する必要があるので。それとも私ですか?アドバンスドMySQLポイントがありませんか?

ここにポイントがありませんか?他に何を知っていますか?

ありがとうございました。

答えて

5

他に何私がすべき知っている?

  • リレーショナル理論の理解、あなたがより良いSQLを記述します。私は現在、リレーショナルモデルの世界的な専門家であるC. J. Dateの新刊「SQL and Relational Theory」を楽しんでいます。

  • は実装とsecurityを監視 - SQLインジェクションを確かに、しかしOWASPSANS.org等冊でカバーその他の問題 "19 Deadly Sins of Software Security。"これはSQLに特化したものではない広範な話題ですが、私はこれを学ぶのはすべてのソフトウェア開発者の義務だと思います。

  • パフォーマンス測定とmonitoring - を実行した時点でどのように知っていますかは最適化手法を学ぶ必要がありますか?

  • I18N, L10N, character sets

  • データベースのメンテナンスと回復 - backups, repair

  • Replication,clusteringおよびproxying

  • 展開とアップグレードのテクニック - サービスを中断せずに実行中のアプリケーションまたはサイトに変更を適用する方法。

  • 複数のRDBMSブランドで動作する多かれ少なかれポータブルSQLの作成。他のブランドをサポートする必要がある場合は、少なくとも書き直す必要があることを理解してください。

  • オブジェクトリレーショナルマッピングフレームワークを採用する方法と時期。

  • どのようにいつ利用するのですかnon-relational databases。 SQLは最高の汎用データ管理パラダイムですが、特定のタスクに特化した他のテクノロジもあります。

0

実行する必要があることが分かっている場合は、は現在です。しかし、C.J. DateによるIntroduction to Database Systemsは、フィールドの先駆者(および他のタイプのデータベースシステム)が作成したリレーショナルデータベースの優れた議論です。

1

とにかく最適化について心配する必要があります。確かにあなたのアプリケーションを使用しているのは10人しかいませんが、それは問題ではありませんが、将来的にはユーザーベースが増えればデータベース構造を書き換えるための "痛み"になります。データベースの抽象化なしで生のクエリを使用しています。

1

高度なMySQLは、単にCRUD操作のクエリを書くことだけではありません。場合によっては、作業しているDBMSの詳細な知識が必要な最適化やさまざまなメンテナンス手順を実行する必要があります。中小規模のアプリケーションを扱う場合、クエリのパフォーマンスとデータベース設計の堅牢性と効率は心配する必要はありませんが、スケーラビリティの高いアプリケーションでは、これらをすべて考慮する必要があります。

1

CRUD構文をよく知っておいてよかったです。リレーショナル設計、主キー、候補キー、索引付けなどを理解することをお勧めします。これらは、MySQLだけでなく、すべてのリレーショナルデータベースにとって意味のあるトピックです。

0

一般的に、人々が気付いていないmysqlや他のRDBMSシステムの特徴がたくさんあります。これは機能のサブセットをうまく利用することができますが、難しい問題に対処するか、優れたDBAになるためには膨大な量のものを学習する必要があるため、これは問題ありません。データベース上のAdvanced Xについて人々が話すとき、これが意味するもののタイプです。

あなたの質問にお答えするには、そこに他の機能やツールがあるかどうかを知ることは決して悪いことではありません。あなた自身の問題を解決するより良い方法を見つけることができ、他の人の問題を解決するためのより良いスキルを開発することができます。私はまた、あなたが高レベルのトピックについての知識を向上させることを示唆し、良いdbデザインを作る方法を知っていることが非常に重要であることを示唆している他の答えに完全に同意します。

6

早期最適化はすべての悪の根源です。適切で論理的なデータベース構造を設計し、正しく索引付けすることに集中してください。ひどく書かれたクエリーを変更することは、ひどく設計されたデータベース構造を変更するよりも簡単です。

私の意見では、あなたが持っているクエリを使用し、最適化が必要なときにそれらを最適化します。クエリには何があり、むしろそれらを安全にすることに重点を置いています(SQLインジェクション参照)。

+0

私は、データベースの設計と構造が問合せの最適化よりもはるかに重要であることに同意します。設計が間違っているデータベースは、少なくとも意味のある方法では最適化できません。 – BrynJ

+1

あなたは「普通の形を学ぶ」ということを忘れてしまった。 – Kalium

1

データベースは単に「ものを置く場所」以上のものです。あなたがそれを実感すれば、あなたはそれらを最大限に活用し始めるでしょう。

+0

-1答えはありません:それ以上は何ですか?彼らの潜在能力は何ですか? – markus

+0

私は自分のデータベースを作成しました。それが彼らの存在のポイントです。確かに、彼らはパフォーマンスと信頼性などのためのクールな機能を持っていますが、結局はそれらを置く場所にすぎません。 :-) – Ken

0

ああ、今私はそれを得る(質問)。私はあなたが "アドバンスト"と "MySQL"を組み合わせる点は何を意味すると思いましたか? ":-)

あなたの仕事にMySQLを使用する必要があるなら、徐々に理解していなければなりません。特に、欠点や落とし穴が何であるか、職場の他の人が本当にうまくいくわけではありません。

今、私の "トロール":これはあなただけの場合、もう少し頑強なものを使用してください。私はMicroSoftのファンではありませんが、あなたはWindowsで作業していると仮定して、SQL Serverを使用するための起動コストをかなり低くしています。あなたが* nixサーバで作業しているなら、PostgreSQLを試してみてください。彼らは、ROLLBACK、トランザクション分離、外部キー参照整合性、ビュー、関数(別名ストアドプロシージャ)のような奇妙な小さなものをかなり数年にわたって正しく実装することについてかなり深刻でした。 MySQLは長年にわたって改良されていますが、(IMHO)まだまだ未熟です。 2000年頃の私の印象は「xBASEの信頼性とSQLインターフェースの使いやすさ」でした。 (私は、SQL言語そのものの大ファンではない - 多分私は本当に「それを行うための唯一可能な方法」として、それまで昇温するだけであまりにも古いです)

0

私はMySQLを悪用することはできませんが、ここでいくつかの洞察を加えることができます。 MySQLの「高度な」部分でカバーされる領域の1つはカスタマイズです。

一般的に、MySQLは箱から出したり、カスタマイズしたりすることはできません。当社は、2つの例として、完全なストアドプロシージャの実装とジオスペースクエリを使用しています。

高度なカスタマイズには、カスタマイズやアドインを追加して作業する経験があります。 MySQLをよりエンタープライズにするための何か。

関連する問題