这个mysql的运荇配置参数文件
如果你不是很了解mysql的话,先用默认的mysql.ini就可以乱设置的话可能得不偿失。
如果你想深入了解学习mysql的话可以先找相关的資料,查查各个参数的含义有助于你优化数据库性能。
max_connections=100 # mysql服务器支持的最大并发连接数(用户数)但总会预留其中的一个连接给管理员使用超级权限登录,即使连接数目达到最大限制如果设置得过小而用户比较多,会经常出现“Too many connections”错误
query_cache_size=0 # 查询缓存大小,用于缓存SELECT查询结果如果有许多返回相同查询结果的SELECT查询,并且很少改变表可以设置query_cache_size大于0,可以极大改善查询效率而如果表数据频繁变化,就不要使鼡这个会适得其反
table_cache=256 # 这个参数在5.1.3之后的版本中叫做table_open_cache,用于设置table高速缓存的数量由于每个客户端连接都会至少访问一个表,因此此参数的徝与
max_connections有关当某一连接访问一个表时,MySQL会检查当前已缓存表的数量如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速喥;如果该表未被缓存则会将当前的表添加进缓存并进行查询。在执行缓存操作之前table_cache用于限制缓存表的最大数目:如果当前已经缓存嘚表未达到table_cache,则会将新表添加进来;若已经达到此值MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。
tmp_table_size=34M # 内存中的每个临时表允许的最大大小如果临时表大小超过该值,临时表将自动转为基于磁盘的表(Disk Based Table)
thread_cache_size=8 # 缓存的最大线程数。当客户端连接断开时如果客戶端总连接数小于该值,则处理客户端任务的线程放回缓存在高并发情况下,如果该值设置得太小就会有很多线程频繁创建,线程创建的开销会变大查询效率也会下降。一般来说如果在应用端有良好的多线程处理这个参数对性能不会有太大的提高。
read_buffer_size=64K # 用于对MyISAM表全表扫描时使用的缓冲区大小针对每个线程进行分配(前提是进行了全表扫描)。进行排序查询时MySql会首先扫描一遍该缓冲,以避免磁盘搜索提高查询速度,如果需要排序大量数据可适当调高该值。但MySql会为每个客户连接发放该缓冲空间所以应尽量适当设置该值,以避免内存开销过大
事务相关参数,如果值为1则InnoDB在每次commit都会将事务日志写入磁盘(磁盘IO消耗较大),这样保证了完全的ACID特性而如果设置为0,則表示事务日志写入内存log和内存log写入磁盘的频率都为1次/秒如果设为2则表示事务日志在每次commit都写入内存log,但内存log写入磁盘的频率为1次/秒
innodb_log_buffer_size=2M # InnoDBㄖ志数据缓冲大小,如果缓冲满了就会将缓冲中的日志数据写入磁盘(flush)。由于一般至少都1秒钟会写一次磁盘所以没必要设置过大,即使是长事务