検索
ホームページデータベースmysql チュートリアルMySql常用命令--优化参数以及日常管理_MySQL

显示插入查询的优化参数:

<code class="hljs asciidoc">show variables like "concurrent_insert";
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| concurrent_insert | AUTO  |
+-------------------+-------+

set GLOBAL concurrent_insert=2;</code>
插入数据时MySQL会对插入的记录进行唯一性校验<br> 这种校验也会降低插入记录的速度。可以在插入记录之前禁用唯一性检查。等到记录插入完毕后再开启。禁用唯一性检查的语句如下:
<code class="hljs asciidoc"><code class="hljs sql">SET UNIQUE_CHECKS=0;</code></code>

<code class="hljs sql">重新开启唯一性检查的语句如下:

<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql">SET UNIQUE_CHECKS=1;</code></code></code>
<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc">mysql> show variables like "UNIQUE_CHECKS";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| unique_checks | ON    |
+---------------+-------+</code></code></code></code>
<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc">mysql设置最大连接数量
<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso">mysql> set GLOBAL max_connections = 1000;
Query OK, 0 rows affected (0.00 sec)</code></code></code></code></code>
<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso">之前配置了mysql的主从备份<br> 结果发现日志很多,占据了很多的磁盘空间,需要进行额外的磁盘管理<br> 进入mysql的存储区域,查看一下数据部分的空间大小
<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso">/mnt/ssd/data$ ls
auto.cnf          mysql-bin.000139  mysql-bin.000149  mysql-bin.000159  mysql-bin.000169  mysql-bin.000179  mysql-bin.000189  mysql-bin.000199  mysql-bin.000209  mysql-bin.index
db_user_msg       mysql-bin.000140  mysql-bin.000150  mysql-bin.000160  mysql-bin.000170  mysql-bin.000180  mysql-bin.000190  mysql-bin.000200  mysql-bin.000210  performance_schema
ibdata1           mysql-bin.000141  mysql-bin.000151  mysql-bin.000161  mysql-bin.000171  mysql-bin.000181  mysql-bin.000191  mysql-bin.000201  mysql-bin.000211  StockData
ib_logfile0       mysql-bin.000142  mysql-bin.000152  mysql-bin.000162  mysql-bin.000172  mysql-bin.000182  mysql-bin.000192  mysql-bin.000202  mysql-bin.000212
ib_logfile1       mysql-bin.000143  mysql-bin.000153  mysql-bin.000163  mysql-bin.000173  mysql-bin.000183  mysql-bin.000193  mysql-bin.000203  mysql-bin.000213
mysql             mysql-bin.000144  mysql-bin.000154  mysql-bin.000164  mysql-bin.000174  mysql-bin.000184  mysql-bin.000194  mysql-bin.000204  mysql-bin.000214
mysql-bin.000135  mysql-bin.000145  mysql-bin.000155  mysql-bin.000165  mysql-bin.000175  mysql-bin.000185  mysql-bin.000195  mysql-bin.000205  mysql-bin.000215
mysql-bin.000136  mysql-bin.000146  mysql-bin.000156  mysql-bin.000166  mysql-bin.000176  mysql-bin.000186  mysql-bin.000196  mysql-bin.000206  mysql-bin.000216
mysql-bin.000137  mysql-bin.000147  mysql-bin.000157  mysql-bin.000167  mysql-bin.000177  mysql-bin.000187  mysql-bin.000197  mysql-bin.000207  mysql-bin.000217
mysql-bin.000138  mysql-bin.000148  mysql-bin.000158  mysql-bin.000168  mysql-bin.000178  mysql-bin.000188  mysql-bin.000198  mysql-bin.000208  mysql-bin.000218</code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso">显示mysql中数据部分和基本的配置部分所占用的磁盘空间

<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso">/mnt/ssd/data$ sudo du -h -d 1
163G    ./StockData
636K    ./performance_schema
1.7M    ./mysql
56K     ./db_user_msg
242G    .</code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso">结果发现这其中很多的空间都被mysql-bin*文件所占用了

<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso">/mnt/ssd/data$ sudo du -c -h mysql-bin*
1.1G    mysql-bin.000135
......
491M    mysql-bin.000218
4.0K    mysql-bin.index
80G     total
结果显示mysql-bin占用了大约80G的磁盘空间</code></code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso">现在我们要将这些日志清理掉

<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc">mysql> show master logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000135 | 1073742116 |
| mysql-bin.000136 | 1073742153 |
......
| mysql-bin.000216 | 1073747783 |
| mysql-bin.000217 | 1073742128 |
| mysql-bin.000218 |  514734902 |
+------------------+------------+
84 rows in set (0.01 sec)
这应该是主从备份一周以内的日志文件

查看一下目前正在起作用的日志文件是哪一个
mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000218 | 514734902 |              |                  |                   |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)</code></code></code></code></code></code></code></code></code>
<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc">如何删除多余的日志<br> 日志的删除<br> 对于比较繁忙的OLTP系统,由于每天生产日志量大,这些日志如果长时间不清理,将会对磁盘空间带来很大的浪费,因此,定期删除日志是DBA维护Mysql数据库的一个重要工作内容,下面将介绍几种删除日志的常见方法:

<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc">先去获得mysql中数据存储的位置:

<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc">mysql> show variables like "datadir";
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)
这是mysql中的默认存储位置</code></code></code></code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc">再去查看master中日志的存储位置:

<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk">mysql> show variables like "log%";
+----------------------------------------+-------------------------------+
| Variable_name                          | Value                         |
+----------------------------------------+-------------------------------+
| log_bin                                | ON                            |
| log_bin_basename                       | /mnt/ssd/data/mysql-bin       |
| log_bin_index                          | /mnt/ssd/data/mysql-bin.index |
| log_bin_trust_function_creators        | OFF                           |
| log_bin_use_v1_row_events              | OFF                           |
| log_error                              | /var/log/mysql/error.log      |
| log_output                             | FILE                          |
| log_queries_not_using_indexes          | OFF                           |
| log_slave_updates                      | OFF                           |
| log_slow_admin_statements              | OFF                           |
| log_slow_slave_statements              | OFF                           |
| log_throttle_queries_not_using_indexes | 0                             |
| log_warnings                           | 1                             |
+----------------------------------------+-------------------------------+
13 rows in set (0.00 sec)</code></code></code></code></code></code></code></code></code></code></code>

<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk">查询slave节点的更新状态:

<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso">mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 25.25.2.6
                  Master_User: gpx_sync
                  Master_Port: 3306
                Connect_Retry: 10
              Master_Log_File: mysql-bin.000218
          Read_Master_Log_Pos: 514734902
               Relay_Log_File: mysqld-relay-bin.000669
                Relay_Log_Pos: 236
        Relay_Master_Log_File: mysql-bin.000218
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table: StockData.t_day_stock
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 514734902
              Relay_Log_Space: 132818854
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: e61e54d8-1e08-11e5-9160-44a842112d25
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

这里面我们获得的有用的信息是:
              Master_Log_File: mysql-bin.000218
          Read_Master_Log_Pos: 514734902
               Relay_Log_File: mysqld-relay-bin.000669
                Relay_Log_Pos: 236
        Relay_Master_Log_File: mysql-bin.000218
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it</code></code></code></code></code></code></code></code></code></code></code></code>
<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso">执行“reset master;”命令,该命令将删除所有二进制日志,新日志的编号从“000001” 开始;
<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso"><code class="hljs perl">Mysql>reset master;</code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso"><code class="hljs perl">执行“Purge master logs to ‘mysql-bin.’” 命令,该命令将删除“” 编号之前的所有日志,下列中删除了“mysql-bin.000001”之前编号的所有日志;
<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso"><code class="hljs perl"><code class="hljs vbnet">Mysql>purge master logs to &#39;mysql-bin.000215&#39;;</code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso"><code class="hljs perl"><code class="hljs vbnet">执行“purge master logs before ‘yyyy-mm-dd hh24:min:ss’”命令,该命令将删除日期为“yyyy-mm-dd hh24:mi:ss”之前产生的所有日志,下列中删除了日期在“2010-05-22 01:00:00”之前的所有日志
<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso"><code class="hljs perl"><code class="hljs vbnet"><code class="hljs css">Mysql>purge master logs before &lsquo;2010-05-22 01:00:00&rsquo;;</code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso"><code class="hljs perl"><code class="hljs vbnet"><code class="hljs css">设置参数 –expire_logs_days=#(days),此参数的含义是设置日志的过期天数,过来指定的天数后日志将会被自动删除,这样将有利于减少DBA管理日志的工作量。
<code class="hljs asciidoc"><code class="hljs sql"><code class="hljs sql"><code class="hljs asciidoc"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs lasso"><code class="hljs asciidoc"><code class="hljs asciidoc"><code class="hljs smalltalk"><code class="hljs lasso"><code class="hljs perl"><code class="hljs vbnet"><code class="hljs css"><code class="hljs asciidoc">gpx@dell:~$ sudo vim /etc/mysql/my.cnf
[mysqld]
expire_logs_days = 3
这样,3天前的日志都会被删除,系统自动删除

查看系统中对于二进制日志自动删除的过期时间
mysql> show variables like "expire%";
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 3     |
+------------------+-------+
1 row in set (0.00 sec)</code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLにユーザーを追加:完全なチュートリアルMySQLにユーザーを追加:完全なチュートリアルMay 12, 2025 am 12:14 AM

MySQLユーザーを追加する方法を習得することは、データベース管理者と開発者にとって重要です。これは、データベースのセキュリティとアクセス制御を保証するためです。 1)CreateUserコマンドを使用して新しいユーザーを作成し、2)付与コマンドを介してアクセス許可を割り当て、3)FlushPrivilegesを使用してアクセス許可を有効にすることを確認します。

MySQL文字列データ型のマスター:Varchar vs. Text vs. CharMySQL文字列データ型のマスター:Varchar vs. Text vs. CharMay 12, 2025 am 12:12 AM

choosecharforfixed-lengthdata、varcharforvariable-lengthdata、andtextforlargetextfields.1)chariseffienceforconsistent-lengthdatalikecodes.2)varcharsuitsvariaible-lengthdatalikenames、balancingflexibilityandperformance.3)Textisidealforforforforforforforforforforforidex

MySQL:文字列データ型とインデックス:ベストプラクティスMySQL:文字列データ型とインデックス:ベストプラクティスMay 12, 2025 am 12:11 AM

MySQLの文字列データ型とインデックスを処理するためのベストプラクティスには、次のものが含まれます。1)固定長のchar、可変長さのvarchar、大規模なテキストのテキストなどの適切な文字列タイプを選択します。 2)インデックス作成に慎重になり、インデックスを避け、一般的なクエリのインデックスを作成します。 3)プレフィックスインデックスとフルテキストインデックスを使用して、長い文字列検索を最適化します。 4)インデックスを定期的に監視および最適化して、インデックスを小さく効率的に保つ。これらの方法により、読み取りと書き込みのパフォーマンスをバランスさせ、データベースの効率を改善できます。

MySQL:リモートでユーザーを追加する方法MySQL:リモートでユーザーを追加する方法May 12, 2025 am 12:10 AM

toaddauserremotelytomysql、フォローステープ:1)connecttomysqlasroot、2)createanewuserwithremoteaccess、3)grantniverayprivileges、and4)flushprivileges.

MySQL文字列データ型の究極のガイド:効率的なデータストレージMySQL文字列データ型の究極のガイド:効率的なデータストレージMay 12, 2025 am 12:05 AM

tostorestringseffiedlyinmysql、choosetherightdatatypebasedonyourneadss:1)usecharforfixed-lengthstringslikecountrycodes.2)usevarforvariable-lengthstringslikenames.3)usetextfor forlong-formtextcontent.4)useblobforborikedalikeimages

mysql blob vs.テキスト:大きなオブジェクトに適したデータ型を選択するmysql blob vs.テキスト:大きなオブジェクトに適したデータ型を選択するMay 11, 2025 am 12:13 AM

MySQLのBLOBおよびテキストデータ型を選択する場合、BLOBはバイナリデータの保存に適しており、テキストはテキストデータの保存に適しています。 1)BLOBは、写真やオーディオなどのバイナリデータに適しています。2)テキストは、記事やコメントなどのテキストデータに適しています。選択するときは、データプロパティとパフォーマンスの最適化を考慮する必要があります。

MySQL:製品にルートユーザーを使用する必要がありますか?MySQL:製品にルートユーザーを使用する必要がありますか?May 11, 2025 am 12:11 AM

いいえ、Youは、usotherootuserinmysqlforyourproduct.instead、createpificusers withlimitedprivilegestoenhancesecurityandperformance:1)createanewuserwithastrongpassword、2)grantonlynlyneversearpermissionStothisuser、3)正規環境筋肉筋周辺の環境

MySQL文字列データ型説明:データに適したタイプを選択するMySQL文字列データ型説明:データに適したタイプを選択するMay 11, 2025 am 12:10 AM

mysqlstringdatatypesshouldbechosenbadedatacharacteristicsandusecases:1)usecharforfixed-lengthstringslikecountrycodes.2)usevarforvariable-lengthstringslikenames.3)usebinaryorvarniaryforbinarydatalikecryptograpograpogrationckeys.4)使用

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1

メモ帳++7.3.1

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境