MySqlの持病を詳しく解説

Sep 17, 2021 pm 04:50 PM
mysql

1. デフォルトのエンコーディング セットの問題

フロントエンド データを表示すると、すべての select * from t_news が見つかります。すべてのコンテンツが見つかります。 。そうなると、クエリをパラメータ化するときに機能しなくなります。例:

Select * from t_news where title like ‘%Source Code Education%’; 0 個のデータが見つかりました。

id ​​= 1 の t_news から * を選択します。 1件のデータが見つかりました。

赤でマークされたフィールドに注目してください。これは変更後のものです。これらは元々は latin1 でした。

解決策:

Windows での MySQL の構成ファイルは my.ini で、通常はインストール ディレクトリのルート ディレクトリにあります。

Linux での MySQL の構成ファイルは my.cnf で、通常は /etc/my.cnf、/etc/mysql/my.cnf に配置されます。見つからない場合は、find コマンドを使用して見つけることができます。

my.ini/my.cnf を開き、次の 2 つのフィールドを変更します。

Ps: 設定ファイルを変更した後は、mysql を再起動する必要があります。

2. データはロールバックされません

プログラミング中に Spring はトランザクションを設定しますが、例外が発生すると、データベース内のデータは依然として変更されます。トランザクションやコード構成に問題がないことを確認した上で、データベースの特化を検討します。テーブルの設計には「Navicat」ツールを使用します。「オプション」列で、テーブルで使用されているストレージ エンジンが MyISAM であることがわかります。

MyISAM はトランザクションをサポートしていません。ロールバックすると不完全なロールバックが発生し、アトミックではありません。

MyISAM を InnoDB に変更します。

MySQL 構成ファイル (my.ini) にはデフォルトのストレージ エンジンもあります。テーブルの作成時に特別なステートメントがない場合は、デフォルトのストレージ エンジンが使用されます。

3. 大量のデータのインポートを最適化する

私たちの仕事では、必然的に大量のデータをインポートする状況に遭遇します。たとえば、以前にバックアップしたデータをクエリしたり、テストのために実際のデータをローカルにインポートしたり、データをバックアップ データベースに定期的にインポートしたり、その他のビジネス シナリオを実行する必要があります。

MySQL は、データを infile にロードするインポート メソッドを提供します。ただし、設定が不適切だとインポート速度が遅くなります。

解決策:

次のパラメータ値を増やします (通常は物理メモリの 80%)。ただし、32 ビット システムは 2 ~ 3.5G に制限されます。

4. カスタム関数 function (クラウド データベース) を有効にする

他の人のコードを実行するとき、またはサーバーを移植するときに、以前に定義されたデータベースの関数に遭遇することがあります。は使用できません。特にデータベースの場合、デフォルトでは関数機能が有効になっていないため、関数が実行されません。

まず、機能が有効になっているかどうかを確認します。以下に示すように:

ここでのカスタム関数機能はデフォルトではオフになっています。

解決策: 「set global log_bin_trust_function_creators = 1;」を使用して、カスタム関数機能を有効にします。

クエリを再度実行してください:

ただし、この方法はゼロタイムの解決策にすぎません。MySQL が再起動されると、この機能はデフォルトでオフになります。

カスタム関数機能を永続的に有効にするには、設定ファイルに「log-bin-trust-function-creators=1」を追加する必要があります。

5. Linux 環境におけるテーブル名の大文字と小文字の問題

Linux システム環境では、MySQL テーブル名はデフォルトで大文字と小文字が区別されます。テーブル名に大文字が誤って入力されると、クエリが見つからないことがあります。

解決策: my.cnf 構成ファイルの最後に「 lower_case_table_names=1 」を追加します。次に、MySQL を再起動します。

" lower_case_table_names=1 "この文は、入力ステートメントを強制的に小文字にしてからステートメントを実行することを意味します。

推奨学習: 「mysql ビデオ チュートリアル

以上がMySqlの持病を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQLをCentos7にインストールする方法 MySQLをCentos7にインストールする方法 Apr 14, 2025 pm 08:30 PM

MySQLをエレガントにインストールするための鍵は、公式のMySQLリポジトリを追加することです。特定の手順は次のとおりです。MYSQLの公式GPGキーをダウンロードして、フィッシング攻撃を防ぎます。 mysqlリポジトリファイルを追加:rpm -uvh https://dev.mysql.com/get/mysql80-community-rease-el7-3.noarch.rpm update yumリポジトリキャッシュ:yumアップデートインストールmysql:yumインストールmysql-server startup mysql sportin

Laravelは紹介例 Laravelは紹介例 Apr 18, 2025 pm 12:45 PM

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

See all articles