当前位置: 首页 > 知识 >正文

mysql my.ini配置(mysql中my.ini配置)

我的。Linux系统下的my.cnf),mysql服务器启动时会读取这个文件,并设置相关的运行环境参数。

My.ini is divided into two parts: client part and server part.

客户端部分用于配置MySQL客户端参数。

要查看配置参数,可以使用以下命令:

Display a variable similar to' %innodb%' # View related configuration parameters of innodb

显示类似“%innodb%”的状态;#检查与innodb相关的运行时参数(例如当前打开的表的数量和当前打开的表的数量)

显示全局状态,如“打开的%个表”;#检查全局运行时参数,并添加global以计算当前mysql服务器中运行的所有数据库实例。

如果没有global,则只计算当前数据库实例。

1, the customer part

[client]

Port=3306 #设置mysql客户端连接到服务器的默认端口。

[mysql]

设置mysql客户端的默认字符集。

2. Server part

[mysqld]

port=3306 # MySQL服务器默认监听的TCP/IP端口。

basedir=' c:/program files/MySQL/MySQL server 5.5/' #基准路径,其他所有路径都是相对于该路径的。

datadir=' C:/Program Files/MySQL/MySQL Server 5.5/Data ' # MySQL数据库文件所在目录

Character-set-server=latin1 #服务器使用的字符集默认为8位编码的latin1字符集。

Default-storage-engine=INNODB #创建新表时使用的默认存储引擎。

sql-mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' # SQL模式为严格的模式

max _ connections=100 # MySQL服务器支持的最大并发连接数(用户数)。但是,其中一个连接将始终保留给管理员以超级权限登录,即使连接数达到最大限制。如果设置太小并且有很多用户,

经常出现“连接过多”的错误。

Query_cache_size=0 #查询缓存大小,用于缓存选择查询结果。如果有许多SELECT查询返回相同的查询结果,并且表很少更改,则可以将query_cache_size设置为大于0。

可以大大提高查询效率。而如果表格数据变化频繁,不要用这个,会适得其反。

Table_cache=256 #该参数在5.1.3以后的版本中称为table_open_cache,用于设置表缓存的数量。因为每个客户端连接至少访问一个表,

因此,该参数的值与max_connections有关。当一个连接访问一个表时,MySQL会检查当前缓存的表的数量。如果在缓存中已经打开了表,就直接访问缓存中的表,加快查询速度;如果该表没有被缓存,

则会将当前的表添加进缓存并进行查询。在执行缓存操作之前,table_cache用于限制缓存表的最大数目:如果当前已经缓存的表未达到table_cache,则会将新表添加进来;若已经达到此值,

MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。

tmp_table_size=34M # 内存中的每个临时表允许的最大大小。如果临时表大小超过该值,临时表将自动转为基于磁盘的表(Disk Based Table)。

thread_cache_size=8 # 缓存的最大线程数。当客户端连接断开时,如果客户端总连接数小于该值,则处理客户端任务的线程放回缓存。在高并发情况下,如果该值设置得太小,

就会有很多线程频繁创建,线程创建的开销会变大,查询效率也会下降。一般来说如果在应用端有良好的多线程处理,这个参数对性能不会有太大的提高。

# MyISAM相关参数

myisam_max_sort_file_size=100G # mysql重建索引时允许使用的临时文件最大大小

myisam_sort_buffer_size=68M

key_buffer_size=54M # Key Buffer大小,用于缓存MyISAM表的索引块。决定数据库索引处理的速度(尤其是索引读)

read_buffer_size=64K # 用于对MyISAM表全表扫描时使用的缓冲区大小。针对每个线程进行分配(前提是进行了全表扫描)。进行排序查询时,MySql会首先扫描一遍该缓冲,

以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySql会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。

read_rnd_buffer_size=256K

sort_buffer_size=256K # connection级参数(为每个线程配置),500个线程将消耗500*256K的sort_buffer_size。

# InnoDB相关参数

innodb_additional_mem_pool_size=3M # InnoDB用于存储元数据信息的内存池大小,一般不需修改

innodb_flush_log_at_trx_commit=1 # 事务相关参数,如果值为1,则InnoDB在每次commit都会将事务日志写入磁盘(磁盘IO消耗较大),

这样保证了完全的ACID特性。而如果设置为0,则表示事务日志写入内存log和内存log写入磁盘的频率都为1次/秒。如果设为2则表示事务日志在每次commit都写入内存log,

但内存log写入磁盘的频率为1次/秒。

innodb_log_buffer_size=2M # InnoDB日志数据缓冲大小,如果缓冲满了,就会将缓冲中的日志数据写入磁盘(flush)。由于一般至少都1秒钟会写一次磁盘,所以没必要设置过大,

即使是长事务。

innodb_buffer_pool_size=105M # InnoDB使用缓冲池来缓存索引和行数据。该值设置的越大,则磁盘IO越少。一般将该值设为物理内存的80%。

innodb_log_file_size=53M # 每一个InnoDB事务日志的大小。一般设为innodb_buffer_pool_size的25%到100%

innodb_thread_concurrency=9 # InnoDB内核最大并发线程数。

在Apache, php, MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,

直接影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验进行判断,然后设置合理的参数。

下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。

一、服务器硬件对MySQL性能的影响

磁盘寻道能力(磁盘I/O),以目前高转速SCSI硬盘(7200转/秒)为例,这种硬盘理论上每秒寻道7200次,这是物理特性决定的,没有办法改变。MySQL每秒钟都在进行大量、复杂的查询操作,

对磁盘的读写量可想而知。所以,通常认为磁盘I/O是制约MySQL性能的最大因素之一,对于日均访问量在100万PV以上的Discuz!论坛,由于磁盘I/O的制约,

MySQL的性能会非常低下!解决这一制约因素可以考虑以下几种解决方案: 使用RAID-0+1磁盘阵列,注意不要尝试使用RAID-5,MySQL在RAID-5磁盘阵列上的效率不会像你期待的那样快。

CPU 对于MySQL应用,推荐使用S.M.P.架构的多路对称CPU,例如:可以使用两颗Intel Xeon 3.6GHz的CPU,现在我较推荐用4U的服务器来专门做数据库服务器,

不仅仅是针对于mysql。

物理内存对于一台使用MySQL的Database Server来说,服务器内存建议不要小于2GB,推荐使用4GB以上的物理内存,不过内存对于现在的服务器而言可以说是一个可以忽略的问题,

工作中遇到了高端服务器基本上内存都超过了16G。

二、MySQL自身因素当解决了上述服务器硬件制约因素后,让我们看看MySQL自身的优化是如何操作的。对MySQL自身的优化主要是对其配置文件my.cnf中的各项参数进行优化调整。

下面我们介绍一些对性能影响较大的参数。 由于my.cnf文件的优化设置是与服务器硬件配置息息相关的,

因而我们指定一个假想的服务器硬件环境:CPU: 2颗Intel Xeon 2.4GHz 内存: 4GB DDR 硬盘: SCSI 73GB(很常见的2U服务器)。

下面,我们根据以上硬件配置结合一份已经优化好的my.cnf进行说明:

#vim /etc/my.cnf以下只列出my.cnf文件中[mysqld]段落中的内容,其他段落内容对MySQL运行性能影响甚微,因而姑且忽略。

[mysqld]

port=3306

serverid=1

socket=/tmp/mysql.sock

skip-locking

#避免MySQL的外部锁定,减少出错几率增强稳定性。

skip-name-resolve

#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,

否则MySQL将无法正常处理连接请求!

back_log=384

#back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,

该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。

对于Linux系统推荐设置为小于512的整数。

key_buffer_size=256M

#key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。

注意:该参数值设置的过大反而会是服务器整体效率降低!

max_allowed_packet=4M

thread_stack=256K

table_cache=128K

sort_buffer_size=6M

#查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 6 600MB。所以,对于内存在4GB左右的服务器推荐设

相关文章:
  • 香港公募基金1月份销售数据显示 资金回流 投向中国基金获显著净申购_基金频道_证券之星
  • 4月17日基金净值:嘉实丰和灵活配置混合A最新净值2.138,涨1.31%
  • datagrip连接mysql(mysql data文件夹)
  • 4月6日基金净值:诺德价值优势混合最新净值2.7412,跌0.46%_基金频道_证券之星
  • 5月31日基金净值:海富通股票混合最新净值1.4974,涨1.69%
  • 嘉实恒生科技ETF(QDII)净值下跌1.74% 请保持关注
  • 5月25日基金净值:嘉实中证稀土产业ETF最新净值1.0821,跌0.39%
  • 5月5日基金净值:易方达科技创新混合最新净值2.7748,跌0.87%
  • 4月3日基金净值:安信新趋势混合A最新净值1.178,涨0.08%_基金频道_证券之星
  • 7月11日基金净值:易方达上证50增强A最新净值1.7847,涨0.62%