zoukankan      html  css  js  c++  java
  • MySQL的my-innodb-heavy-4G.ini配置文件的翻译

    我根据MySQL配置文件的英文文档说明,在根据自己所学的知识,使用有道词典对不懂的单词进行了查询,一个一个翻译出来的。有的专业术语翻译的不好,我使用了英文进行标注,例如主机(master)和副机(slave hosts),不知道如何翻译,所有在翻译后面加上了英文标识。

    下面是这个MySQL的my-innodb-heavy-4G.ini配置文件的中英对照版,如果有些地方解释的不对,希望大神可以指正。

    所有以"注:"开头的都是翻译部分。

      1 #BEGIN CONFIG INFO    
      2 #DESCR: 4GB RAM, InnoDB only, ACID, few connections, heavy queries
      3 #TYPE: SYSTEM
      4 #END CONFIG INFO
      5 
      6 #注:这个用于4G的内存,并且只能用于InnoDB模式,支持事务的ACID,很少的连接数,很大的查询数
      7 
      8 
      9 #
     10 # This is a MySQL example config file for systems with 4GB of memory
     11 # running mostly MySQL using InnoDB only tables and performing complex
     12 # queries with few connections.
     13 # 
     14 
     15 #注:这是MySQL的一个样例的配置文件,要求系统有至少4G的内存,运行MySQL使用InnoDB模式运行复杂的连接但是连接数较少
     16 
     17 # MySQL programs look for option files in a set of
     18 # locations which depend on the deployment platform.
     19 # You can copy this option file to one of those
     20 # locations. For information about these locations, see:
     21 # http://dev.mysql.com/doc/mysql/en/option-files.html
     22 
     23 #注:MySQL程序将会寻找参数(配置)文件在一系列的地方,这个依赖MySQL的运行的平台和安装情况,你可以复制这些文件
     24 #到MySQL查找配置的文件的路径。如果你想知道更多的信息,可以参考: http://dev.mysql.com/doc/mysql/en/option-files.html
     25 
     26 # In this file, you can use all long options that a program supports.
     27 # If you want to know which options a program supports, run the program
     28 # with the "--help" option.
     29 #
     30 
     31 #注:在这个配置文件中,你可以使用所有被MySQL程序支持的长参数,如果你想知道有那些参数被MySQL支持,你可以使用如下命令
     32 # mysql --help 或者  man mysql-5.1.72/support-files/my-innodb-heavy-4G.cnf
     33 
     34 # More detailed information about the individual options can also be
     35 # found in the manual.
     36 #
     37 
     38 #注:更多详细的信息关于个别的参数可以参考参考手册
     39 
     40 #
     41 # The following options will be read by MySQL client applications.
     42 # Note that only client applications shipped by MySQL are guaranteed
     43 # to read this section. If you want your own MySQL client program to
     44 # honor these values, you need to specify it as an option during the
     45 # MySQL client library initialization.
     46 #
     47 
     48 #注:接下来的参数将会被MySQL客户端应用读取。记住只有那些被MySQL服务端授权的客户端才会保证去读取到这些参数
     49 #如果你想让你自己的MySQL客户端去读取这些参数,你需要指定这个作为一个选项在你的MySQL客户端lib库初始化的时候
     50 
     51 [client]    #客户端参数配置
     52 #password    = [your_password]    #你自己的密码
     53 port        = 3306            #数据库的端口为3306
     54 socket        = /application/mysql5.1.72/tmp/mysql.sock    #指定socket路径,我也不知道什么意思
     55 
     56 # *** Application-specific options follow here ***
     57 
     58 #注下面是MySQL服务端参数配置
     59 
     60 #
     61 # The MySQL server
     62 #
     63 [mysqld]
     64 
     65 # generic configuration options
     66 port        = 3306        #数据库服务端端口为3306
     67 socket        = /application/mysql5.1.72/tmp/mysql.sock    #指定socket路径
     68 
     69 # back_log is the number of connections the operating system can keep in
     70 # the listen queue, before the MySQL connection manager thread has
     71 # processed them. If you have a very high connection rate and experience
     72 # "connection refused" errors, you might need to increase this value.
     73 # Check your OS documentation for the maximum value of this parameter.
     74 # Attempting to set back_log higher than your operating system limit
     75 # will have no effect.
     76 back_log = 50
     77 
     78 #注:back_log 是一个数值,在数据库连接管理器处理这些队列之前,操作系统可以保持监听队列的数量。
     79 #如果你的数据库服务有一个很高的连接数并且有连接拒绝的经历,你可以增大这个值。你需要检查你的操作系统
     80 #的文件系统对这个参数的最大支持。如果你设定的值超过操作系统的最大值,那么这个值将无效
     81 
     82 
     83 # Don't listen on a TCP/IP port at all. This can be a security
     84 # enhancement, if all processes that need to connect to mysqld run
     85 # on the same host.  All interaction with mysqld must be made via Unix
     86 # sockets or named pipes.
     87 # Note that using this option without enabling named pipes on Windows
     88 # (via the "enable-named-pipe" option) will render mysqld useless!
     89 #skip-networking
     90 
     91 #注:skip-networking 这个参数是一个属性,没有值。把注解去掉即生效。这个参数的用途为:
     92 #不监听TCP/IP的端口。这是一个增加安全的参数,如果所有的连接MySQL的程序都来自相同的主机。
     93 #这样,所有与MySQL服务器的连接都需要在通道或者管道中进行
     94 #记住:使用这个参数不能使用管道早Windows中
     95 
     96 
     97 # The maximum amount of concurrent sessions the MySQL server will
     98 # allow. One of these connections will be reserved for a user with
     99 # SUPER privileges to allow the administrator to login even if the
    100 # connection limit has been reached.
    101 max_connections = 100
    102 
    103 #注:MySQL允许的最大连接数。在这些连接中,始终会为超级管理员保留一个连接,即使所有的连接已经达到上限
    104 
    105 # Maximum amount of errors allowed per host. If this limit is reached,
    106 # the host will be blocked from connecting to the MySQL server until
    107 # "FLUSH HOSTS" has been run or the server was restarted. Invalid
    108 # passwords and other errors during the connect phase result in
    109 # increasing this value. See the "Aborted_connects" status variable for
    110 # global counter.
    111 max_connect_errors = 10
    112 
    113 #注:每个客户端运行的最大的错误数。如果错误的数量到达上限,这个客户端将会被阻塞去连接数据库直到刷新客户端
    114 #或者重新启动服务器。无效的密码或者其他的连接错误都算作错误,会增加这个值。可以参考Aborted_connects的状态
    115 #来查看全局的计数器
    116 
    117 # The number of open tables for all threads. Increasing this value
    118 # increases the number of file descriptors that mysqld requires.
    119 # Therefore you have to make sure to set the amount of open files
    120 # allowed to at least 4096 in the variable "open-files-limit" in
    121 # section [mysqld_safe]
    122 table_open_cache = 2048
    123 
    124 #注:这个值代表着所有对外开放的数据表的数量。增加这个值将会增加MySQL所需要的文件描述符
    125 #因此你需要去设置"open-files-limit"的值至少为4096在MySQL安全的配置文件中,你可以看到这个值在本文的最后
    126 
    127 # Enable external file level locking. Enabled file locking will have a
    128 # negative impact on performance, so only use it in case you have
    129 # multiple database instances running on the same files (note some
    130 # restrictions still apply!) or if you use other software relying on
    131 # locking MyISAM tables on file level.
    132 #external-locking
    133 
    134 #注:external-locking为外部文件锁的意思,可用的外部文件锁。如果使用外部文件锁将会对MySQL的性能有消极影响。
    135 #因此使用外部文件锁当你有多重的数据库实例运行在相同的文件中(记住一些限制任然是有用的)或者可用使用一些依赖MyISAM的外部锁软件
    136 
    137 
    138 # The maximum size of a query packet the server can handle as well as
    139 # maximum query size server can process (Important when working with
    140 # large BLOBs).  enlarged dynamically, for each connection.
    141 max_allowed_packet = 16M
    142 
    143 #注:MySQL查询包的最大值或者是处理查询的最大值,(这个属性非常重要,如果你操作很大的二进制对象的数据的时候)
    144 #这个值可以对每个线程进行动态的扩大
    145 
    146 # The size of the cache to hold the SQL statements for the binary log
    147 # during a transaction. If you often use big, multi-statement
    148 # transactions you can increase this value to get more performance. All
    149 # statements from transactions are buffered in the binary log cache and
    150 # are being written to the binary log at once after the COMMIT.  If the
    151 # transaction is larger than this value, temporary file on disk is used
    152 # instead.  This buffer is allocated per connection on first update
    153 # statement in transaction
    154 binlog_cache_size = 1M
    155 
    156 #注:binlog_cache_size 是一个缓存大小的值,这个是用于存放在事务中,用于存储SQL statement的日志
    157 #如果你经常使用大的、多statement的事务,你可以增加这个值去获取更多的性能。
    158 #所有和事务相关的statement都会以二进制的形式写入该缓冲区,并且都会立刻写入二进制日志在事务提交以后
    159 #如果事务的数据量超过这个值,在磁盘上就会建立临时文件来使用。
    160 #这个缓冲区将会开启在每个连接第一次进行update操作的时候
    161 
    162 
    163 
    164 # Maximum allowed size for a single HEAP (in memory) table. This option
    165 # is a protection against the accidential creation of a very large HEAP
    166 # table which could otherwise use up all memory resources.
    167 max_heap_table_size = 64M
    168 
    169 #注:max_heap_table_size是一个最大限制值,限制一个单独的数据表在内存里面的堆积的最大值
    170 #有了此限制,就不会让表数据把内存堆满
    171 
    172 # Size of the buffer used for doing full table scans.
    173 # Allocated per thread, if a full scan is needed.
    174 read_buffer_size = 2M
    175 
    176 #read_buffer_size 是一个数据表视图全部显示的缓存大小,允许每个线程去使用此缓存
    177 
    178 # When reading rows in sorted order after a sort, the rows are read
    179 # through this buffer to avoid disk seeks. You can improve ORDER BY
    180 # performance a lot, if set this to a high value.
    181 # Allocated per thread, when needed.
    182 read_rnd_buffer_size = 16M
    183 
    184 #read_rnd_buffer_size 是一个按顺序读取的缓存大小,在读取数据过程中,我们可能先对数据排序,排序好的数据会先放在此缓冲区中。
    185 #然后在进行读取,避免在一次进行磁盘查找。增加这个值可以提升 ORDER BY 语句的性能。允许每个线程使用
    186 
    187 # Sort buffer is used to perform sorts for some ORDER BY and GROUP BY
    188 # queries. If sorted data does not fit into the sort buffer, a disk
    189 # based merge sort is used instead - See the "Sort_merge_passes"
    190 # status variable. Allocated per thread if sort is needed.
    191 sort_buffer_size = 8M
    192 
    193 #sort_buffer_size 是分类或者排序缓存的大小,用于去执行分类/排序语句,如 ORDER BY and GROUP BY
    194 #如果实际的数据过大超过这个缓冲区,那么基于磁盘的分类合并将会被使用。
    195 #允许每个线程
    196 
    197 # This buffer is used for the optimization of full JOINs (JOINs without
    198 # indexes). Such JOINs are very bad for performance in most cases
    199 # anyway, but setting this variable to a large value reduces the
    200 # performance impact. See the "Select_full_join" status variable for a
    201 # count of full JOINs. Allocated per thread if full join is found
    202 join_buffer_size = 8M
    203 
    204 #join_buffer_size 是一个内连接的缓存,用于优化内连接操作。我们知道,内连接对性能是有非常坏的影响的
    205 #但是设置内连接缓存将会减少内连接对性能的消极影响。查看 "Select_full_join"可以知道有多少内连接操作
    206 
    207 # How many threads we should keep in a cache for reuse. When a client
    208 # disconnects, the client's threads are put in the cache if there aren't
    209 # more than thread_cache_size threads from before.  This greatly reduces
    210 # the amount of thread creations needed if you have a lot of new
    211 # connections. (Normally this doesn't give a notable performance
    212 # improvement if you have a good thread implementation.)
    213 thread_cache_size = 8
    214 
    215 #注:thread_cache_size是数据库服务端的连接线程在线程池中保持活跃的上限。当客户端不连接数据库的时候
    216 #这个客户端的连接线程将会保持在线程池里面如果线程中的总线程数量不超过 "thread_cache_size"给定的值
    217 #这个将会减少线程的创建当有很多新的连接突然来到的时候。(正常情况下,这个参数将不会给数据库性能带来不稳定的提升
    218 #如果你有一个很好的线程实现)
    219 
    220 # This permits the application to give the threads system a hint for the
    221 # desired number of threads that should be run at the same time.  This
    222 # value only makes sense on systems that support the thread_concurrency()
    223 # function call (Sun Solaris, for example).
    224 # You should try [number of CPUs]*(2..4) for thread_concurrency
    225 thread_concurrency = 8
    226 
    227 #注:thread_concurrency 是一个线程并发的数量的参考值。这个应用去给线程系统一个暗示关于希望多少个线程可以使用
    228 #在相同的时间内。这个值只是做一个参考在支持thread_concurrency()在(Sun Solaris 的操作系统中)
    229 #说白了就是我们CPU的线程数,如2线程,4线程
    230 
    231 # Query cache is used to cache SELECT results and later return them
    232 # without actual executing the same query once again. Having the query
    233 # cache enabled may result in significant speed improvements, if your
    234 # have a lot of identical queries and rarely changing tables. See the
    235 # "Qcache_lowmem_prunes" status variable to check if the current value
    236 # is high enough for your load.
    237 # Note: In case your tables change very often or if your queries are
    238 # textually different every time, the query cache may result in a
    239 # slowdown instead of a performance improvement.
    240 query_cache_size = 64M
    241 
    242 #注:query_cache_size 是查询缓存的大小。如果你执行一次查询,数据库会把查询的结果放入缓存中
    243 #如果你以后执行了同以前相同的查询,那么数据库会直接从缓存中返回数据(前提是有以前的缓存数据)
    244 #如果你经常查询同一张表或者经常查询相同的大数据,这个缓存将会帮你提升性能
    245 #如果你的查询是多变的,并且每次都不一样,那么这个缓冲区可能会降低你的性能
    246 
    247 # Only cache result sets that are smaller than this limit. This is to
    248 # protect the query cache of a very large result set overwriting all
    249 # other query results.
    250 query_cache_limit = 2M
    251 
    252 #注:query_cache_limit 查询缓存的最小值,只有当 query_cache_size 的设置小于 query_cache_limit 
    253 #才会生效。设置这个值是为了避免查询缓存过小,而一个大数据的查询会把所有的查询缓存覆盖
    254 
    255 # Minimum word length to be indexed by the full text search index.
    256 # You might wish to decrease it if you need to search for shorter words.
    257 # Note that you need to rebuild your FULLTEXT index, after you have
    258 # modified this value.
    259 ft_min_word_len = 4
    260 
    261 #ft_min_word_len 是被编入数据库索引单词的最小长度。你可能想去减少这个长度如果你想查询更短的单词的时候
    262 #那你就需要重新编译 FULLTEXT 在你修改这个值之后
    263 
    264 # If your system supports the memlock() function call, you might want to
    265 # enable this option while running MySQL to keep it locked in memory and
    266 # to avoid potential swapping out in case of high memory pressure. Good
    267 # for performance.
    268 #memlock
    269 
    270 #memlock 是内存锁的参数。所谓的内存锁就是在运行MySQL的时候指定就在某个内存范围内运行
    271 #这样就避免高端内存的交换,对性能有提升。但是这是参数需要操作系统的支持,默认关闭此参数
    272 
    273 # Table type which is used by default when creating new tables, if not
    274 # specified differently during the CREATE TABLE statement.
    275 default-storage-engine = MYISAM
    276 
    277 #注: default-storage-engine,默认的存储引擎参数,在MySQL中,mysql中用的最多存储引擎就是innodb和 myisam
    278 #这里使用的默认存在引擎为myisam
    279 
    280 # Thread stack size to use. This amount of memory is always reserved at
    281 # connection time. MySQL itself usually needs no more than 64K of
    282 # memory, while if you use your own stack hungry UDF functions or your
    283 # OS requires more stack for some operations, you might need to set this
    284 # to a higher value.
    285 thread_stack = 192K
    286 
    287 #注:thread_stack线程堆栈的大小。这个值将会被保留在内存中当在连接的时候,MySQL自身需要的线程
    288 #堆栈不超过64K,然而当你自己的定义的UDF(User define Function 用户自定义函数)或者是你的操作
    289 #系统需要更多的堆栈对一些操作,你可能需要去提高这个值
    290 
    291 # Set the default transaction isolation level. Levels available are:
    292 # READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE
    293 transaction_isolation = REPEATABLE-READ
    294 
    295 #注:transaction_isolation 设置MySQL事务的隔离级别,这里设置的是REPEATABLE-READ(可重复的读)
    296 #此外MySQL还有额外的事务隔离机制 READ-UNCOMMITTED(脏读) READ-COMMITTED(读已提交) SERIALIZABLE(串行化)
    297 
    298 # Maximum size for internal (in-memory) temporary tables. If a table
    299 # grows larger than this value, it is automatically converted to disk
    300 # based table This limitation is for a single table. There can be many
    301 # of them.
    302 tmp_table_size = 64M
    303 
    304 
    305 #注 tmp_table_size 是限制一直数据表临时在内存中的最大存储容量,如果超过了这个值,那么将自动的转为磁盘存储
    306 #这个限制只作用于一个单独的表。
    307 
    308 # Enable binary logging. This is required for acting as a MASTER in a
    309 # replication configuration. You also need the binary log if you need
    310 # the ability to do point in time recovery from your latest backup.
    311 log-bin=mysql-bin
    312 
    313 #注:log-bin是二进制的日志文件。二进制的日志文件被需要当管理员去恢复数据库的配置的时候。
    314 #你会需要二进制日志当你需要恢复数据库从最近的备份
    315 
    316 # binary logging format - mixed recommended
    317 binlog_format=mixed
    318 
    319 # binlog_format 设置上面二进制的日志格式,mixed 格式被推荐使用
    320 
    321 # If you're using replication with chained slaves (A->B->C), you need to
    322 # enable this option on server B. It enables logging of updates done by
    323 # the slave thread into the slave's binary log.
    324 #log_slave_updates
    325 
    326 #注:log_slave_updates 关系型日志更新,如果你使用这样的关系链如(A->B->C),那么你需要把这个参数打开在B机器上
    327 #他可以记录关联机器的(A和C)更新的日志
    328 
    329 # Enable the full query log. Every query (even ones with incorrect
    330 # syntax) that the server receives will be logged. This is useful for
    331 # debugging, it is usually disabled in production use.
    332 #log
    333 
    334 # Print warnings to the error log file.  If you have any problem with
    335 # MySQL you should enable logging of warnings and examine the error log
    336 # for possible explanations. 
    337 #log_warnings
    338 
    339 #注:log_warnings 是打印警告对于错误的日志文件,默认被注释掉(关闭的)。如果你任何的问题
    340 #对于MySQL,你应当开启错误日志警告并且测试错误日志得到相应的解释
    341 
    342 # Log slow queries. Slow queries are queries which take more than the
    343 # amount of time defined in "long_query_time" or which do not use
    344 # indexes well, if log_short_format is not enabled. It is normally good idea
    345 # to have this turned on if you frequently add new queries to the
    346 # system.
    347 slow_query_log
    348 
    349 #注:slow_query_log 是开启查询缓慢日志。查询缓慢是那些查询花费的时间超过定义的 "long_query_time" 的查询或者是没有使用索引的查询将会被写如日志
    350 #如果 "log_short_format" 没有开启,正常情况下是非常好的去打开这个控制如果你频繁的增加新的的查询
    351 
    352 # All queries taking more than this amount of time (in seconds) will be
    353 # trated as slow. Do not use "1" as a value here, as this will result in
    354 # even very fast queries being logged from time to time (as MySQL
    355 # currently measures time with second accuracy only).
    356 long_query_time = 2
    357 
    358 #注:long_query_time 是设置查询的最大时间限制,单位:秒
    359 #如果所有的查询时间超过这个时间就会被认为是查询缓慢。不要设置1作为 "long_query_time"的值
    360 #因为这个将会导致系统有时候误认快速查询为慢速查询。(MySQL一般是以秒来作为精确度)
    361 
    362 
    363 # ***  Replication related settings    #MySQL主从复制原理设置
    364 
    365 
    366 # Unique server identification number between 1 and 2^32-1. This value
    367 # is required for both master and slave hosts. It defaults to 1 if
    368 # "master-host" is not set, but will MySQL will not function as a master
    369 # if it is omitted.
    370 server-id = 1
    371 
    372 #注:server-id 是唯一的服务器标识数在 12^32-1之间。这个值将会被主机(master)和副机(slave hosts)使用
    373 #server-id将默认会被定义成1如果"master-host"(主从复制的主机,这里的称为主机(master),另一个称为副机(slave host))没有指定,
    374 #那么这个MySQL服务器将不会执行作为主机(master)的功能
    375 
    376 # Replication Slave (comment out master section to use this) 
    377 
    378 #注:配置副机(slave host)(添加注释的区域是说明和使用的)
    379 #
    380 # To configure this host as a replication slave, you can choose between
    381 # two methods :                
    382 #注:为了去配置这个MySQL作为副机(slave),你可以使用下面两种方案
    383 #
    384 # 1) Use the CHANGE MASTER TO command (fully described in our manual) -
    385 #    the syntax is:
    386 #
    387 #    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
    388 #    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
    389 #
    390 #    where you replace <host>, <user>, <password> by quoted strings and
    391 #    <port> by the master's port number (3306 by default).
    392 #
    393 #    Example:
    394 #
    395 #    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
    396 #    MASTER_USER='joe', MASTER_PASSWORD='secret';
    397 #
    398 
    399 #注:第一种方案:使用 "CHANGE MASTER TO"命令(完整的描述在MySQL的使用手册中)
    400 #"CHANGE MASTER TO"使用的语法及样例你可以参考什么的介绍,说的很详细
    401 
    402 
    403 # OR
    404 #
    405 # 2) Set the variables below. However, in case you choose this method, then
    406 #    start replication for the first time (even unsuccessfully, for example
    407 #    if you mistyped the password in master-password and the slave fails to
    408 #    connect), the slave will create a master.info file, and any later
    409 #    changes in this file to the variable values below will be ignored and
    410 #    overridden by the content of the master.info file, unless you shutdown
    411 #    the slave server, delete master.info and restart the slaver server.
    412 #    For that reason, you may want to leave the lines below untouched
    413 #    (commented) and instead use CHANGE MASTER TO (see above)
    414 #
    415 
    416 #注:第二种方案:设置如下的变量,可是,如果你使用了这种方法,然后首次开启主从复制(即使你失败了,举个例子:如果你误输入主机(master)
    417 #的密码,副机(salve)将不会连接),这个副机将会创建一个master.info文件,之后里面的配置变量在下面的都会失效并且会用
    418 #主机(master)的master.info里面的内容来重写,除非你停止副机(slave),然后删除副机(slave)的master.info文件并且重新启动
    419 #副机(slave)。对于这个理由,你可能立刻想放弃这个方案。使用"CHANGE MASTER TO"命令的方法可以参考什么
    420 
    421 # required unique id between 2 and 2^32 - 1
    422 # (and different from the master)
    423 # defaults to 2 if master-host is set
    424 # but will not function as a slave if omitted
    425 #server-id = 2
    426 
    427 #注:需要唯一的标识数id来标识这是一个副机(slave),不同于主机(master)。默认使用2如果主机(master-host)已经设置为1
    428 #但是如果这个值被遗漏,那么这个副机(slave)就不会执行副机有的功能
    429 
    430 #
    431 # The replication master for this slave - required
    432 #master-host = <hostname>
    433 #
    434 
    435 #注:指定主从复制的主机(master)对于副机(slave),这个是必须的
    436 
    437 # The username the slave will use for authentication when connecting
    438 # to the master - required
    439 #master-user = <username>
    440 
    441 #注:这个主机(master)的用户名被用于副机(slave)连接主机的验证,这个参数是必须的
    442 
    443 # The password the slave will authenticate with when connecting to
    444 # the master - required
    445 #master-password = <password>
    446 
    447 #注:这个主机(master)的密码用于副机(slave)连接主机时候的认证
    448 
    449 # The port the master is listening on.
    450 # optional - defaults to 3306
    451 #master-port = <port>
    452 
    453 #注:这个主机(master)所在的端口,默认为3306
    454 
    455 # Make the slave read-only. Only users with the SUPER privilege and the
    456 # replication slave thread will be able to modify data on it. You can
    457 # use this to ensure that no applications will accidently modify data on
    458 # the slave instead of the master
    459 #read_only
    460 
    461 #注:read_only 数据只读性。使得副机(slave)保持只读的性质。只有拥有超级权限的用户和主从复制的线程才有权限去修改副机(slave)
    462 #你可以使用这个参数去确保没有应用可以去修改副机上面的数据
    463 
    464 #以上的这些主从复制参数都被注释掉了,因为这些参数都用于副机(slave),而这里是主机
    465 
    466 #*** MyISAM Specific options    #使用MyISAM存储引擎的一些特殊的参数
    467 
    468 
    469 # Size of the Key Buffer, used to cache index blocks for MyISAM tables.
    470 # Do not set it larger than 30% of your available memory, as some memory
    471 # is also required by the OS to cache rows. Even if you're not using
    472 # MyISAM tables, you should still set it to 8-64M as it will also be
    473 # used for internal temporary disk tables.
    474 key_buffer_size = 32M
    475 
    476 #注:key_buffer_size 是索引缓冲区的大小。用于缓存索引区块对于使用MyISAM储存的数据表
    477 #不要设置他的值超过你内存的30%,因为操作系统也需要内存去去缓存行数据。即使你不使用MyISAM存储引擎
    478 #你也需要设置key_buffer_size值为8-64M去用于存放内部的临时数据表
    479 
    480 # MyISAM uses special tree-like cache to make bulk inserts (that is,
    481 # INSERT ... SELECT, INSERT ... VALUES (...), (...), ..., and LOAD DATA
    482 # INFILE) faster. This variable limits the size of the cache tree in
    483 # bytes per thread. Setting it to 0 will disable this optimisation.  Do
    484 # not set it larger than "key_buffer_size" for optimal performance.
    485 # This buffer is allocated when a bulk insert is detected.
    486 bulk_insert_buffer_size = 64M
    487 
    488 #注:bulk_insert_buffer_size 是MyISAM专属的树形缓冲区的大小。这个树形缓冲区主要用于
    489 #存放待插入的数据。bulk_insert_buffer_size将会限制树形缓冲区的大小对于每个线程,如果bulk_insert_buffer_size
    490 #设置为0,那么这个功能将不可用。设置这个值不要超过"key_buffer_size"是最佳性能
    491 #这个缓冲区将会被分配当检测到插入数据的时候
    492 
    493 # This buffer is allocated when MySQL needs to rebuild the index in
    494 # REPAIR, OPTIMIZE, ALTER table statements as well as in LOAD DATA INFILE
    495 # into an empty table. It is allocated per thread so be careful with
    496 # large settings.
    497 myisam_sort_buffer_size = 128M
    498 
    499 # myisam_sort_buffer_size 是一个缓冲区,当MySQL需要重新修建索引在 REPAIR, OPTIMIZE, ALTER 数据表是或者
    500 #插入数据到一个空表中时,会分配这个缓冲区。这个缓冲区将会被分配到每个线程以至于很小心的对于大的设置
    501 
    502 # The maximum size of the temporary file MySQL is allowed to use while
    503 # recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
    504 # If the file-size would be bigger than this, the index will be created
    505 # through the key cache (which is slower).
    506 myisam_max_sort_file_size = 10G
    507 
    508 #注:myisam_max_sort_file_size MySQL最大使用的临时文件大小当重建索引或者修改表或者加载数据时
    509 #如果文件大小超过这个设定的值,那么索引将会被创建在索引缓冲区中(这个行为会比较慢)
    510 
    511 # If a table has more than one index, MyISAM can use more than one
    512 # thread to repair them by sorting in parallel. This makes sense if you
    513 # have multiple CPUs and plenty of memory.
    514 myisam_repair_threads = 1
    515 
    516 
    517 #注: myisam_repair_threads 是MyISAM开启的修理线程数量。当一个表有多个索引,MyISAM就会开启一个或者多个
    518 #修理线程去修理这些索引使他们并行的排序。如果想让这个变量有意义,那么你的机器需要有一个很复杂的CPU和大量的内存
    519 
    520 # Automatically check and repair not properly closed MyISAM tables.
    521 myisam_recover
    522 
    523 # myisam_recover 是一个控制,控制是否自动的检查和修理不正确关闭的数据表
    524 
    525 # *** INNODB Specific options ***    #使用INNODB存储引擎的一些特殊的参数
    526 
    527 # Use this option if you have a MySQL server with InnoDB support enabled
    528 # but you do not plan to use it. This will save memory and disk space
    529 # and speed up some things.
    530 #skip-innodb
    531 
    532 #注:使用这参数如果你的MySQL服务支持InnoDB,但是如果你不打算使用它,这个将会节约内存和磁盘空间
    533 #并且加速某些操作
    534 
    535 # Additional memory pool that is used by InnoDB to store metadata
    536 # information.  If InnoDB requires more memory for this purpose it will
    537 # start to allocate it from the OS.  As this is fast enough on most
    538 # recent operating systems, you normally do not need to change this
    539 # value. SHOW INNODB STATUS will display the current amount used.
    540 innodb_additional_mem_pool_size = 16M
    541 
    542 #注: innodb_additional_mem_pool_size 额外的内存池大小由InnoDB去存储元数据
    543 #如果InnoDB需要更多的内存,他会直接找操作系统去要,这个操作是足够快的对于操作系统
    544 #因此你正常情况下没必要去改变这个值。使用"SHOW INNODB STATUS"命令可以查看当前的
    545 #innodb_additional_mem_pool_size的值
    546 
    547 # InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
    548 # row data. The bigger you set this the less disk I/O is needed to
    549 # access data in tables. On a dedicated database server you may set this
    550 # parameter up to 80% of the machine physical memory size. Do not set it
    551 # too large, though, because competition of the physical memory may
    552 # cause paging in the operating system.  Note that on 32bit systems you
    553 # might be limited to 2-3.5G of user level memory per process, so do not
    554 # set it too high.
    555 innodb_buffer_pool_size = 2G
    556 
    557 #注:innodb_buffer_pool_size 是InnoDB用来存在索引和数据的缓冲区。InnoDB存储引擎和MyISAM不一样
    558 #InnoDB使用缓存池来缓存索引和行数据。这个值你设置的越大,磁盘I/O消耗的就会越少
    559 #在一个专门用于数据存储的服务器中,你可能设置这个参数的值为内存大小的80%。但是不要设置这个值过大
    560 #因为在和操作系统竞争物理内存的过程中会导致操作系统出现问题。在32位的操作系统中,这个值限制在
    561 #2-3.5G在用户级别的程序中。总之不要设置这个过大
    562 
    563 # InnoDB stores data in one or more data files forming the tablespace.
    564 # If you have a single logical drive for your data, a single
    565 # autoextending file would be good enough. In other cases, a single file
    566 # per device is often a good choice. You can configure InnoDB to use raw
    567 # disk partitions as well - please refer to the manual for more info
    568 # about this.
    569 innodb_data_file_path = ibdata1:10M:autoextend
    570 
    571 #注: innodb_data_file_path 指定数据文件的路径。InnoDB存储数据使用的是多个数据文件来形成空间表
    572 #如果你有一个额外的逻辑分区来存在你的数据,单个的自填充文件是最好不过了。在另一方面
    573 #一系列简单的文件对于每个驱动来说都是一个好的选择。如果你想知道如何配置InnoDB使用 raw disk partitions
    574 #请参考使用手册
    575 
    576 # Set this option if you would like the InnoDB tablespace files to be
    577 # stored in another location. By default this is the MySQL datadir.
    578 #innodb_data_home_dir = <directory>
    579 
    580 #注: innodb_data_home_dir指定InnoDB数据文件的存在位置。你可以修改这个值来指定
    581 #数据文件的存在路径
    582 
    583 # Number of IO threads to use for async IO operations. This value is
    584 # hardcoded to 4 on Unix, but on Windows disk I/O may benefit from a
    585 # larger number.
    586 innodb_file_io_threads = 4
    587 
    588 #注:innodb_file_io_threads 异步的IO线程数量对于业务的操作。这个值被写死为4在Unix 或者Linux
    589 #在Windows下面,可以适当增加
    590 
    591 # If you run into InnoDB tablespace corruption, setting this to a nonzero
    592 # value will likely help you to dump your tables. Start from value 1 and
    593 # increase it until you're able to dump the table successfully.
    594 #innodb_force_recovery=1
    595 
    596 #注:innodb_force_recovery 是InnoDB空间表的转储情况。如果你运行InnoDB空间表出错
    597 #设置这个值为一个非0的数将会帮助你去转储你的空间表。从1开始增长直到你的数据表转储完成
    598 
    599 # Number of threads allowed inside the InnoDB kernel. The optimal value
    600 # depends highly on the application, hardware as well as the OS
    601 # scheduler properties. A too high value may lead to thread thrashing.
    602 innodb_thread_concurrency = 16
    603 
    604 #注:innodb_thread_concurrency 指定InnoDB的线程并发数量。这个值允许低于InnoDB的内核
    605 #这个参数的最优值要依赖于具体的应用程序,硬件以及操作系统。太高的设置这个参数值将会导致
    606 #线程超负荷
    607 
    608 # If set to 1, InnoDB will flush (fsync) the transaction logs to the
    609 # disk at each commit, which offers full ACID behavior. If you are
    610 # willing to compromise this safety, and you are running small
    611 # transactions, you may set this to 0 or 2 to reduce disk I/O to the
    612 # logs. Value 0 means that the log is only written to the log file and
    613 # the log file flushed to disk approximately once per second. Value 2
    614 # means the log is written to the log file at each commit, but the log
    615 # file is only flushed to disk approximately once per second.
    616 innodb_flush_log_at_trx_commit = 1
    617 
    618 #注:innodb_flush_log_at_trx_commit 设置事务日志的级别。
    619 #如果设置为1,那么每一次事务提交,就会把事务日志同步到磁盘,这样安全性高,但是占用较多的磁盘I/O
    620 #如果设置为0,日志只会被写入日志文件,并且每隔1s刷新到磁盘,不怎么消耗I/O,但安全性较差
    621 #如果设置为2,每次事务提交就会立刻写入日志文件,但是每隔1s才会同步到磁盘,不怎么消耗I/O,但安全性较差
    622 
    623 # Speed up InnoDB shutdown. This will disable InnoDB to do a full purge
    624 # and insert buffer merge on shutdown. It may increase shutdown time a
    625 # lot, but InnoDB will have to do it on the next startup instead.
    626 #innodb_fast_shutdown
    627 
    628 #注: 加速InnoDB关闭的设置,这个设置将会废除InnoDB做整个数据的检查并且会保存到缓冲区中去
    629 #这个也可能增加InnoDB的关闭时间。但是InnoDB将会去做整个数据检查在下一次开机的时候
    630 
    631 # The size of the buffer InnoDB uses for buffering log data. As soon as
    632 # it is full, InnoDB will have to flush it to disk. As it is flushed
    633 # once per second anyway, it does not make sense to have it very large
    634 # (even with long transactions). 
    635 innodb_log_buffer_size = 8M
    636 
    637 #注: innodb_log_buffer_size InnoDB日志缓冲区大小。只要日志缓冲区满了,InnoDB就会刷新日志到磁盘中
    638 #但是因为InnoDB每秒刷新一次日志到磁盘,所以没必要设置这个值太大(即使是很长的事务)
    639 
    640 # Size of each log file in a log group. You should set the combined size
    641 # of log files to about 25%-100% of your buffer pool size to avoid
    642 # unneeded buffer pool flush activity on log file overwrite. However,
    643 # note that a larger logfile size will increase the time needed for the
    644 # recovery process.
    645 innodb_log_file_size = 256M
    646 
    647 #注: innodb_log_file_size是在一组日志文件中,每个日志文件的大小。你可以综合设置日志文件的大小
    648 #为 "innodb_buffer_pool_size"(索引和数据缓冲区)大小的25%-100% 去避免因日志文件满而进行的刷新重新操作。
    649 #记住如果innodb_log_file_size值过大将会增加恢复进程的处理时间
    650 
    651 # Total number of files in the log group. A value of 2-3 is usually good
    652 # enough.
    653 innodb_log_files_in_group = 3
    654 
    655 #注: innodb_log_files_in_group是每个日志组里面日志的总数量。2-3个比较合适
    656 
    657 # Location of the InnoDB log files. Default is the MySQL datadir. You
    658 # may wish to point it to a dedicated hard drive or a RAID1 volume for
    659 # improved performance
    660 #innodb_log_group_home_dir
    661 
    662 #注:InnoDB的日志存储路径。默认为MySQL的datadir。你可能想指定这个路径到一个专用的RAID1设备
    663 #去提高MySQL的性能
    664 
    665 # Maximum allowed percentage of dirty pages in the InnoDB buffer pool.
    666 # If it is reached, InnoDB will start flushing them out agressively to
    667 # not run out of clean pages at all. This is a soft limit, not
    668 # guaranteed to be held.
    669 innodb_max_dirty_pages_pct = 90
    670 
    671 #注: innodb_max_dirty_pages_pct是InnoDB允许在缓存池内脏页(dirty pages)占的最大比例。如果超出了这个比例
    672 #InnoDB将会去刷新这些脏页(dirty pages)但是不会用光这些干净页(dirty pages).
    673 #这个一个软的限制,不能保证会执行
    674 
    675 # The flush method InnoDB will use for Log. The tablespace always uses
    676 # doublewrite flush logic. The default value is "fdatasync", another
    677 # option is "O_DSYNC".
    678 #innodb_flush_method=O_DSYNC
    679 
    680 #注:InnoDB的日志刷新方式,InnoDB总是使用双向写(doublewrite)的方式来刷新日志。
    681 #默认值是"fdatasync",还有一个值是O_DSYNC。如果想了解更多的日志刷新方式和脏页(dirty pages),
    682 #可以参考下面的链接
    683 http://www.cnblogs.com/cchust/p/3961260.html
    684 
    685 # How long an InnoDB transaction should wait for a lock to be granted
    686 # before being rolled back. InnoDB automatically detects transaction
    687 # deadlocks in its own lock table and rolls back the transaction. If you
    688 # use the LOCK TABLES command, or other transaction-safe storage engines
    689 # than InnoDB in the same transaction, then a deadlock may arise which
    690 # InnoDB cannot notice. In cases like this the timeout is useful to
    691 # resolve the situation.
    692 innodb_lock_wait_timeout = 120
    693 
    694 #注: innodb_lock_wait_timeout是InnoDB锁等待的超时时间。InnoDB将会自动的发现死锁在
    695 #他的锁表中并且会回滚这些事务。如果你使用"LOCK TABLES"命令或者其他事务安全存储引擎
    696 #在同一个事务中,死锁可能使InnoDB连接不敏感,使用这个超时参数会很有用的去解决这个问题
    697 
    698 
    699 [mysqldump]
    700 # Do not buffer the whole result set in memory before writing it to
    701 # file. Required for dumping very large tables
    702 quick
    703 
    704 #注:MySQL数据转储。在把数据转储之前,不会缓存整个结果在内存中。适用于转储数据量很大的表
    705 
    706 max_allowed_packet = 16M
    707 
    708 #注:参阅141行
    709 
    710 [mysql]
    711 no-auto-rehash
    712 
    713 #注:MySQL不自动刷新
    714 
    715 # Only allow UPDATEs and DELETEs that use keys.
    716 #safe-updates
    717 
    718 #安全的更新,只允许更新和删除使用索引
    719 
    720 [myisamchk]
    721 key_buffer_size = 512M        #参考474行
    722 sort_buffer_size = 512M        #参考191行
    723 read_buffer = 8M        #读缓冲区大小
    724 write_buffer = 8M        #写缓冲区大小
    725 
    726 [mysqlhotcopy]
    727 interactive-timeout
    728 
    729 #注:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
    730 #参数默认值:28800秒(8小时)
    731 
    732 [mysqld_safe]
    733 # Increase the amount of open files allowed per process. Warning: Make
    734 # sure you have set the global system limit high enough! The high value
    735 # is required for a large number of opened tables
    736 open-files-limit = 8192
    737 
    738 #注:MySQL的安全性参数,开放文件的数量。允许每个进程去增加开放文件的数量
    739 #警告:确保你已经做了全局系统的限制。这个值需要被增大当有大量的开放表被使用的时候。
  • 相关阅读:
    【Azure 应用服务】在Azure App Service多实例的情况下,如何在应用中通过代码获取到实例名(Instance ID)呢?
    【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
    【Azure Developer】使用Azure Key Vault 的Key签名后,离线验证的一些参考资料
    【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
    【Azure 应用服务】App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(Xms512m Xmx1204m)?
    【Azure API 管理】APIM添加Logtoeventhub的策略后,一些相关APIM与Event Hub的问题
    【Azure API 管理】为调用APIM的请求启用Trace 调试APIM Policy的利器
    【Azure 事件中心】China Azure上是否有Kafka服务简答
    【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
    【Azure 微服务】记一次错误的更新Service Fabric 证书而引发的集群崩溃而只能重建
  • 原文地址:https://www.cnblogs.com/yghjava/p/6372460.html
Copyright © 2011-2022 走看看