0

Web サイトにフォームを使用してデータを挿入するだけです。通常、データは次のような行の最後の行に挿入されます: auto_increment name

1 a
2 b
3 c
4 d
5 e

しかし、前回新しいデータを挿入すると、テーブルの中央の行に挿入され、次のようになりました。

17 data17
30 data30
18 data18
19 data19
20 data20

テーブルの中央の行に挿入された最新のデータ (data30)。めったに起こらない (今でも起こる) なぜこれが起こるのですか? そして、どうすれば将来このことを防ぐことができますか? ありがとうございました。

4

1 に答える 1

0

表示されるのは、エンジンによって返された結果です。多くの問題に依存するため、どちらのレコードが早くフェッチされ、どちらが後でフェッチされるかはほとんど問題ではありません。1 つには、データベース テーブルが FoxPro のようなシーケンシャル ファイルであるとは考えないでください。それよりもはるかに洗練されています。次に、データを返すすべてのクエリで Order by 句を使用して、これらのインスタンスを回避します。

したがって、常に次を使用します。

select columns from table order by column

上記により、必要な方法でデータを取得でき、別のデータベース ファイルの遅いメディアから古いレコードをフェッチしているときに、DB エンジンがキャッシュで新しいレコードを見つけても驚くことはありません。RDBMS の概念の基本を読むと、MySQL が内部でどのように機能するかを学習する必要があるため、これらのことについて説明します。

最新のデータベース クエリ エンジンの多くの優れた機能について説明しているこの素晴らしい記事を見つけました。 http://thinkingmonster.wordpress.com/mysql/mysql-architecture/

記事全体でこのトピックについて十分に説明していますが、Record Cache.

于 2013-04-13T17:12:51.233 に答える