MySQL の時間フィールドに INT と DateTime のどちらを使用するかについての手順
今天解析DEDECMS时发现deder的MYSQL时间字段,都是用
`senddata` int(10) unsigned NOT NULL DEFAULT '0'; |
随后又在网上找到这篇文章,看来如果时间字段有参与运算,用int更好,一来检索时不用在字段上转换运算,直接用于时间比较!二来如下所述效率也更高。
归根结底:用int来代替data类型,更高效。
环境:
Windows XP PHP Version 5.2.9 MySQL Server 5.1 |
第一步、创建一个表date_test(非定长、int时间)
CREATE TABLE `test`.`date_test` ( `id` INT NOT NULL AUTO_INCREMENT , `start_time` INT NOT NULL , `some_content` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB; |
第二步、创建第二个表date_test2(定长、int时间)
CREATE TABLE `test`.`date_test2` ( `id` INT NOT NULL AUTO_INCREMENT , `start_time` INT NOT NULL , `some_content` CHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB; |
第三步、创建第三个表date_test3(varchar、datetime时间)
CREATE TABLE `test`.`date_test3` ( `id` INT NOT NULL AUTO_INCREMENT , `start_time` DATETIME NOT NULL , `some_content` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB; |
第四步、创建第四个表date_test3(char、datetime时间)
CREATE TABLE `test`.`date_test4` ( `id` INT NOT NULL AUTO_INCREMENT , `start_time` DATETIME NOT NULL , `some_content` CHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB; |
わかりました。テストを開始します。環境は php です。まず、各テーブルに 100 万個のデータを挿入します。挿入する際は200回に分けて、毎回5,000件をデータベースに入力します。
表 1 の実行記録: ページの実行時間: 26.5997889042 秒 挿入中に興味深い現象が発見されました。SELECT count( id ) FROM `date_test` WHERE 1 の結果は 100w ですが、`date_test から * を直接選択した結果です。 ` は 1,000,374 件の結果です。 (後で、これが近い値であることがわかりました。MySQL FAQ 3.11 を参照してください)。
表 2 の実行レコード: ページの実行時間: 62.3908278942 秒、今回は 1,000,066 レコードがあります。
表 3 の実行記録: ページの実行時間: 30.2576560974 秒、今回は 1,000,224 のエントリがあります。
表 4 の実行記録: ページの実行時間: 67.5393900871 秒、今回: 1,000,073 エントリ。
次に、4 つのテーブルの start_time フィールドにインデックスを 1 つずつ追加します。
4 つのテーブルの更新をテストし、それぞれ 100 レコードを更新し、時間を記録します:
表 1: ページの実行時間: 2.62180089951 秒 (非固定長、整数時間)
表 2: ページの実行時間: 2.5475358963 秒 (固定長、整数時間)
表 3: ページの実行時間: 2.45077300072 秒 (varchar、日時時間)
表 4: ページの実行時間: 2.82798409462 秒 (文字、日時)
4 つのテーブルの読み取りをテストし、それぞれ 100 個のランダム レコードを選択し、主キー ID に基づいてクエリを実行し、時間を記録します。
表 1: ページの実行時間: 0.382651090622 秒 (非固定長、整数時間)
表 2: ページの実行時間: 0.542181015015 秒 (固定長、整数時間)
表 3: ページの実行時間: 0.334048032761 秒 (varchar、日時時間)
表 4: ページの実行時間: 0.506206989288 秒 (文字、日時)
4 つのテーブルの読み取りをテストし、それぞれ 10 個のランダムなレコードを選択し、star_time を条件としてクエリを実行し、時間を記録します。
表 1: ページの実行時間: 30.1972880363 秒 (非固定長、整数時間)
表 2: ページの実行時間: 65.1926910877 秒 (固定長、整数時間)
表 3: ページの実行時間: 39.7210869789 秒 (varchar、datetime 時刻)
表 4: ページの実行時間: 70.4632740021 秒 (文字、日時)
金額が比較的小さいため、小さな変化でも意味があると考えられます。
結論:
データ量が大きい場合、select * from table where time>XX などのクエリが多数ある場合、MySQL5.1 では datetime に int を使用するのが合理的です。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

SQLはリレーショナルデータベースを管理するための標準言語であり、MySQLはSQLを使用するデータベース管理システムです。 SQLは、CRUD操作を含むデータベースと対話する方法を定義しますが、MySQLはSQL標準を実装し、ストアドプロシージャやトリガーなどの追加機能を提供します。

記事の最初の段落の要約:YIフレームワークアプリケーションを開発するソフトウェアを選択する場合、複数の要因を考慮する必要があります。 XcodeやAndroid Studioなどのネイティブモバイルアプリケーション開発ツールは、強力な制御と柔軟性を提供できますが、Reactネイティブやフラッターなどのクロスプラットフォームフレームワークは、一度に複数のプラットフォームに展開できる利点にますます人気が高まっています。モバイル開発を新しい開発者向けに、AppsheetやGlideなどの低コードまたはノーコードプラットフォームは、アプリケーションをすばやく簡単に構築できます。さらに、AWS AmplifyやFirebaseなどのクラウドサービスプロバイダーは包括的なツールを提供します
