简介
MySQL中的数据用各种不同的技术存储在文件(或者内存)中;
每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的功能和能力;
这些不同的实现数据存储的技术在MySQL的整体架构中逻辑化为“存储引擎层”;
存储引擎,通常又被称作“表类型”(即可以在创建表时指定存储引擎,但无法对某一数据库指定存储引擎)
查看
show engines; # 显示可支持的存储引擎show table status [{from|in} Db_Name] [like ‘pattern’|where expr]; # 可显示指定数据库中指定表的状态信息# 法一:show table status like ‘classes’;# 法二:show table status where Name=’classes’/G
可通过查看表的状态信息获得表所使用的存储引擎类别:
修改默认存储引擎:
# 在配置文件/etc/my.cnf中设置如下:default_storage_engine = InnoDB
各存储引擎及其特性
InnoDB
支持事务:事务日志;日志文件大小一致:如ib_logfile0和ib_logfile1支持外键支持MVCC支持聚簇索引支持行级锁:即间隙锁支持辅助索引支持自适应hash索引支持热备份不支持全文索引
MyISAM
支持全文索引支持压缩:用于实现数据仓库,能节约存储空间并提升性能支持空间索引支持表级锁:若读写操作比例为9:1或8:2,则使用MyISAM可以提高性能延迟更新索引:减少IO压力不支持事务,外键,MVCC,行级锁等崩溃后无法安全恢复数据适用场景:多读少写的数据,较小的表,能够容忍崩溃后的修改操作和数据丢失;如自带的mysql数据库中的表都是使用MyISAM存储引擎的# 建议:使用InnoDB存储引擎,并使用read commited的隔离级别,性能并不比MyISAM性能差,故推荐使用InnoDB存储引擎
ARCHIVE
仅支持insert和select支持很好的压缩功能不支持事务,不能很好的支持索引适用于:存储日志信息,或其它按时间序列实现的数据采集类的应用,如监控日志
CSV
12 |
将数据存储为csv格式,不支持索引 仅适用于数据交换场景
|
BLACKHOLE
12 |
没有存储机制,任何发往此引擎的数据都会丢弃 由于其会记录二进制日志,故常用于多级复制架构中作中转服务器
|
MEMORY
1234 |
数据保存在内存中,即是一个内存表
不支持blob和text数据类型 常用于保存中间数据,如周期性的聚合数据等;也用于实现临时表
|
MRG_MYISAM
12 |
是MyISAM的一个变种,能够将多个MyISAM表合并为一个虚表 属于传统的存储引擎,一般不常用
|
NDB
1 | 是MySQL Cluster中专用的存储引擎,不常用 |
第三方的存储引擎
XtraDB
增强的InnoDB,由Percona提供;用法:编译安装MySQL时,下载XtraDB的源码替换MySQL存储引擎中的InnoDB源码,并重新编译安装MySQL
PBXT
MariaDB自带此存储引擎支持引擎级别的复制,外键约束支持事务,MVCC对SSD磁盘提供适当支持
TokuDB
使用Fractal Trees索引,性能很强适用于存储大数据,拥有很好的压缩比已被引入新版本的MariaDB
列式存储引擎:
Infobright
前身为Maria,是增强版的MyISAM支持崩溃后安全恢复支持数据缓存
其它列式存储引擎
如 InfiniDB,MonetDB,LucidDB等
开源社区存储引擎:
Aria
前身为Maria,是增强版的MyISAM支持崩溃后安全恢复支持数据缓存
Groona
全文索引引擎;Mroonga是基于Groona的二次开发版
OQGraph
由Open Query研发,支持图结构的存储引擎
SphinxSE
为Sphinx全文搜索服务器提供了SQL接口
Spider
能将数据切分成不同的分片,比较高效透明的实现了分片(shard);支持在分片上支持并行查询
选择存储引擎可参考要素
是否需要事务
备份的类型的支持(热备或冷备)
崩溃后的恢复
特有的特性(如对SSD的支持等)

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

MySQLは、データストレージ、管理、クエリ、セキュリティに適したオープンソースのリレーショナルデータベース管理システムです。 1.さまざまなオペレーティングシステムをサポートし、Webアプリケーションやその他のフィールドで広く使用されています。 2。クライアントサーバーアーキテクチャとさまざまなストレージエンジンを通じて、MySQLはデータを効率的に処理します。 3.基本的な使用には、データベースとテーブルの作成、挿入、クエリ、データの更新が含まれます。 4.高度な使用には、複雑なクエリとストアドプロシージャが含まれます。 5.一般的なエラーは、説明ステートメントを介してデバッグできます。 6.パフォーマンスの最適化には、インデックスの合理的な使用と最適化されたクエリステートメントが含まれます。

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

INNODBのロックメカニズムには、共有ロック、排他的ロック、意図ロック、レコードロック、ギャップロック、次のキーロックが含まれます。 1.共有ロックにより、トランザクションは他のトランザクションが読み取らないようにデータを読み取ることができます。 2.排他的ロックは、他のトランザクションがデータの読み取りと変更を防ぎます。 3.意図ロックは、ロック効率を最適化します。 4。ロックロックインデックスのレコードを記録します。 5。ギャップロックロックインデックス記録ギャップ。 6.次のキーロックは、データの一貫性を確保するためのレコードロックとギャップロックの組み合わせです。

MySQLクエリのパフォーマンスが低いことの主な理由には、インデックスの使用、クエリオプティマイザーによる誤った実行計画の選択、不合理なテーブルデザイン、過剰なデータボリューム、ロック競争などがあります。 1.インデックスがゆっくりとクエリを引き起こし、インデックスを追加するとパフォーマンスが大幅に向上する可能性があります。 2。説明コマンドを使用してクエリ計画を分析し、オプティマイザーエラーを見つけます。 3.テーブル構造の再構築と結合条件を最適化すると、テーブルの設計上の問題が改善されます。 4.データボリュームが大きい場合、パーティション化とテーブル分割戦略が採用されます。 5.高い並行性環境では、トランザクションの最適化とロック戦略は、ロック競争を減らすことができます。

データベースの最適化では、クエリ要件に従ってインデックス作成戦略を選択する必要があります。1。クエリに複数の列が含まれ、条件の順序が固定されている場合、複合インデックスを使用します。 2。クエリに複数の列が含まれているが、条件の順序が修正されていない場合、複数の単一列インデックスを使用します。複合インデックスは、マルチコラムクエリの最適化に適していますが、単一列インデックスは単一列クエリに適しています。

MySQLスロークエリを最適化するには、slowquerylogとperformance_schemaを使用する必要があります。1。LowerQueryLogを有効にし、しきい値を設定して、スロークエリを記録します。 2。performance_schemaを使用してクエリの実行の詳細を分析し、パフォーマンスのボトルネックを見つけて最適化します。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
