mysql配置_MySQL
前言:《mysql配置》,在centOS上安装完成mysql后,自然是要对mysql进行配置,对于mysql来说,my.cnf可是很重要的,相当于画龙点睛的作用呢。
经常不经意间就发现文章被扣到各式各样的网站上面,甚是可恶!
那么人生何处不爬虫,爬虫请标http://blog.csdn.net/qing_gee
见贤思齐焉,见不贤而内自省也!
特此说明,我这个配置文件内容是结合我项目实战经验多次总结出来的王道,对提升mysql性能有着关键性的作用,当然了,这要看你的项目是否需要这样做喽。
这个文件里面的配置项目很多,我就一一说明了(主要是俺其实有一些也不懂,千万要笑啊,我是真不懂,不过我有问过度娘!),
<code class="language-shell hljs makefile">[client] #no-beep port=3306 [mysql] default-character-set=utf8 socket = /var/lib/mysql/mysql.sock [mysqld] # The TCP/IP Port the MySQL Server will listen on port=3306 socket = /var/lib/mysql/mysql.sock character-set-server=utf8 #默认引擎设置为INNODB,这要看你的数据库是做什么用的 default-storage-engine=INNODB #最大连接数,这个说实话,我没有测出来最合理的数值 max_connections = 500 #下面这两个参数就是禁用缓存查询,主要是因为我的数据库大量的写操作,所以设置了cache,反而会影响性能,也是基于理论上的,所以你大可不必相信。 query_cache_size=0 query_cache_type=0 #这几个数值,你千万要找度娘理论一下啊,我是说不清楚了 table_open_cache=2000 tmp_table_size=19M thread_cache_size = 18 myisam_max_sort_file_size = 1G myisam_sort_buffer_size=30M key_buffer_size=8M read_buffer_size = 512K read_rnd_buffer_size = 1M sort_buffer_size = 512k #这个很重要了,对性能有着很大的影响,我会告诉你的。 innodb_flush_log_at_trx_commit=2 innodb_log_buffer_size=1M # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. innodb_buffer_pool_size=2G innodb_buffer_pool_instances=1 #上面这两个参数对性能的作用我会论证给你的。 #这一块参数的作用我也忘的差不多了,所以度娘吧 innodb_log_file_size=48M innodb_thread_concurrency=9 innodb_autoextend_increment=64 innodb_buffer_pool_instances=8 innodb_concurrency_tickets=5000 innodb_old_blocks_time=1000 innodb_open_files=300 innodb_stats_on_metadata=0 innodb_file_per_table=1 innodb_checksum_algorithm=0 flush_time=0 join_buffer_size=256K max_connect_errors=100 max_allowed_packet = 16M open_files_limit=4161 table_definition_cache=1400 binlog_row_event_max_size=8K #二进制的类型,这个有很大学问,稍候我也会告诉你的。 binlog-format = MIXED #事务锁时间,这个同样学问很大。 innodb_lock_wait_timeout = 20 #事务锁级别,这个学问同样很大很大啊 transaction-isolation = REPEATABLE-READ binlog_cache_size = 1M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. #这个参数就是设置二进制文件的路径的,注意啊,注意啊! log_bin=mysql-bin server_id = 1 [mysqldump] max_allowed_packet = 16M </code>
重点来了,下面这些内容,如果你没有看到,我觉得你错过了精彩,精彩啊,如果你错过了,我强烈抗议的,虽然抗议无效!
1.innodb_flush_log_at_trx_commit=2
Controls the balance between strict ACID compliance for commit operations, and higher performance<br /> that is possible when commit-related I/O operations are rearranged and done in batches. You can<br /> achieve better performance by changing the default value, but then you can lose up to a second of<br /> transactions in a crash.<br /> ? The default value of 1 is required for full ACID compliance. With this value, the contents of the InnoDB<br /> log buffer are written out to the log file at each transaction commit and the log file is flushed to disk.<br /> ? With a value of 0, the contents of the InnoDB log buffer are written to the log file approximately once<br /> per second and the log file is flushed to disk. No writes from the log buffer to the log file are performed<br /> at transaction commit. Once-per-second flushing is not 100% guaranteed to happen every second,<br /> due to process scheduling issues. Because the flush to disk operation only occurs approximately once<br /> per second, you can lose up to a second of transactions with any mysqld process crash.<br /> ? With a value of 2, the contents of the InnoDB log buffer are written to the log file after each transaction<br /> commit and the log file is flushed to disk approximately once per second. Once-per-second flushing<br /> is not 100% guaranteed to happen every second, due to process scheduling issues. Because the<br /> flush to disk operation only occurs approximately once per second.
大致的意思是将该属性主要是为数据库的ACID原则进行服务的,并且默认为1,但是实际情况下(我们项目是结合spring和mybatis,可能是某一方面设置不当),设置为2会提高很多的事务性能,从文档中可以看得出来,“1的时候,innodb的缓存会在事务提交或者每秒钟时都会进行磁盘的刷新操作,2的时候,innodb缓存会在提交事务时写入到事务日志但不会刷新磁盘,然后在每秒钟时进行磁盘刷新操作”,2要比1提高很多性能,但是对于隐患来说,我没有太好的理解,按照文档中给出的结果好像是“在操作系统崩溃的时候,2的情况下,会丢失1秒的数据”,但是仔细想想发生的时间节点,1.事务没有commit时,断电了,此时肯定数据是没有更新成功的,因为都还没有来得及写入事务日志,2.事务提交后,在写入事务日志的时候,发生断电,此时无论是参数的值是1还是2,都应该恢复不了数据了,3.每秒钟刷新磁盘时,发生断电,按照《高性能mysql》的字面意思,此时既然事务日志已经持久化了,那么重启后,数据是会自动恢复的。那么疑问来了,2和1的隐患到底在什么情况下会发生。
我在http://blog.csdn.net/qing_gee/article/details/42551179,这篇文章中有介绍。
2.innodb_buffer_pool_size=2G<br />
innodb_buffer_pool_instances=1
这两个参数,你必须得看看这个mysql:提升性能的最关键参数
3.binlog-format = MIXED
binlog_format=mixed:二进制日志的格式为mixed,该中模式是statement和row模式的结合体,注意查看我同事写的http://www.xx566.com/detail/177.html这篇文章,里面讲解了我们项目在二进制日志设置上遇到的问题和解决办法,如果遇到类似的问题后,会有所帮助。<br /> In MySQL 5.7, the default format is STATEMENT.<br /> You must have the SUPER privilege to set either the global or session binlog_format value.<br /> The rules governing when changes to this variable take effect and how long the effect lasts are the same<br /> as for other MySQL server system variables. See Section 13.7.4, “SET Syntax”, for more information.<br /> When MIXED is specified, statement-based replication is used, except for cases where only row-based<br /> replication is guaranteed to lead to proper results. For example, this happens when statements contain<br /> user-defined functions (UDF) or the UUID() function. An exception to this rule is that MIXED always<br /> uses statement-based replication for stored functions and triggers.
4.innodb_lock_wait_timeout = 20<br />
你可以看看这个Transactional和mysql究竟有什么关系,你会明白的,我相信!
5.transaction-isolation = REPEATABLE-READ<br />
高性能mysql札记:事务,这里面,我有大量的论证。
当然了,我之前也从各地摘录了一些关于参数介绍的,如果你觉得需要的话,我会给你地址的。mysql:配置参数优化建议
写到这,我觉得我的套路就要结束了,这些经验,我真想不说出来的!
最后啊,记得要重启mysql的不然,肯定是没有效果的。
<code class="language-shell hljs makefile"><code class="language-shell hljs ">service mysql restart</code></code>
<code class="language-shell hljs "><strong>结语</strong>:分享知识是快乐的,我只好这样安慰自己吧,哈哈,其实我心态是很宽的,所谓“人逢知己千杯少”,我主要是想结交朋友的,哈哈。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 Docker에서 MySQL 메모리 사용을 최적화합니다. 모니터링 기술 (Docker Stats, Performance Schema, 외부 도구) 및 구성 전략에 대해 설명합니다. 여기에는 Docker 메모리 제한, 스와핑 및 CGroups와 함께 포함됩니다

이 기사에서는 MySQL의 "공유 라이브러리를 열 수 없음"오류를 다룹니다. 이 문제는 MySQL이 필요한 공유 라이브러리 (.so/.dll 파일)를 찾을 수 없음에서 비롯됩니다. 솔루션은 시스템 패키지 M을 통한 라이브러리 설치 확인과 관련이 있습니다.

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

이 기사는 Linux에 MySQL을 직접 설치하는 것과 Phpmyadmin이없는 Podman 컨테이너 사용을 비교합니다. 각 방법에 대한 설치 단계에 대해 자세히 설명하면서 Podman의 격리, 이식성 및 재현성의 장점을 강조하지만 또한

이 기사는 자체 포함 된 서버리스 관계형 데이터베이스 인 SQLITE에 대한 포괄적 인 개요를 제공합니다. SQLITE의 장점 (단순성, 이식성, 사용 용이성) 및 단점 (동시성 제한, 확장 성 문제)에 대해 자세히 설명합니다. 기음

이 안내서는 Homebrew를 사용하여 MacOS에 여러 MySQL 버전을 설치하고 관리하는 것을 보여줍니다. 홈 브루를 사용하여 설치를 분리하여 갈등을 방지하는 것을 강조합니다. 이 기사에는 설치, 서비스 시작/정지 서비스 및 Best Pra에 대해 자세히 설명합니다

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].
