Heim Datenbank MySQL-Tutorial MySQL MyISAM 优化设置点滴_MySQL

MySQL MyISAM 优化设置点滴_MySQL

May 27, 2016 pm 01:44 PM
myisam

最近在配置mysql服务器需要用到的一些设置,经过测试发现比较不错的配置方案,亮点在最后啊

先说一点问题:
 
Mysql中的InnoDB和MyISAM是在使用MySQL中最常用的两个表类型,各有优缺点.两种类型最主要的差别就是 InnoDB 支持事务处理与外键和行级锁.而MyISAM不支持.所以Myisam往往就容易被人认为只适合在小项目中使用。但是从数据库需求角度讲,要求99.9%的稳定性,方便的扩展性和高可用性来说的话,那MyISAM绝对应该是首选。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快, 只是不提供事务支持.大部分项目是读多写少的项目,而Myisam的读性能是比innodb强不少的.
 
优化设置:

key_buffer_size – 这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。但是注意,分多少内存应该是根据需求决 定,而不是不管什么机器,都砍掉一半内存用作 key_buffer_size .合理的值取决于索引大小、数据量以及负载 — 记住,MyISAM表会使用操作系统的缓存来缓存数据,因此需要留出部分内存给它们,很多情况下数据比索引大多了。可以通过SHOW GLOBAL STATUS 时的 Key_blocks_unused来查看,只要还有剩余,就说明 key_buffer_size 没用满。如果你很少使用MyISAM表,那么也保留低于 16-32MB 的 key_buffer_size 以适应给予磁盘的临时表索引所需。
 
query_cache — 如果你的应用程序有大量读,而且没有应用程序级别的缓存,那么这很有用。不要把它设置太大了,因为想要维护它也需要不少开销,这会导致MySQL变慢。通 常设置为 32-512Mb。设置完之后最好是跟踪一段时间,查看是否运行良好。在一定的负载压力下,如果缓存命中率太低了,就启用它。

sort_buffer_size –如果你只有一些简单的查询,那么就无需增加它的值了,尽管你有 64GB 的内存。搞不好也许会降低性能。
 
query_cache_size -查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果.打开查询缓冲可以极大的提高服务器速度, 如果你有大量的相同的查询并且很少修改表.查看 “Qcache_lowmem_prunes” 状态变量来检查是否当前值对于你的负载来说是否足够高.注意: 在你表经常变化的情况下或者如果你的查询原文每次都不同,查询缓冲也许引起性能下降而不是性能提升.注意:设置query_cache_limit,只有小于此设定值的结果才会被缓冲, 此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖.
 
bulk_insert_buffer_size -MyISAM 使用特殊的类似树的cache来使得突发插入, (这些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATA INFILE) 更快. 此变量限制每个进程中缓冲树的字节数. 设置为 0 会关闭此优化.为了最优化不要将此值设置大于 “key_buffer_size”.当突发插入被检测到时此缓冲将被分配.
 
read_rnd_buffer_size -当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道.如果你增高此值,可以提高很多ORDER BY的性能.当需要时由每个线程分配
 
thread_cache_size - 我们在cache中保留多少线程用于重用,当一个客户端断开连接后,如果cache中的线程还少于thread_cache_size,则客户端线程被放入cache中.这可以在你需要大量新连接的时候极大的减少线程创建的开销
 
附录:适用于日IP 50-100w,PV 100-300w的站点,针对Dell R710,双至强E5620、16G内存的硬件配置。CentOS 5.6 64位系统,MySQL 5.5.x 稳定版的部分数据库配置文件,供大家参考

代码如下:


back_log = 300
max_connections = 3000
max_connect_errors = 30
table_cache = 4096
max_allowed_packet = 32M
#external-locking
#skip-networking
binlog_cache_size = 4M
max_heap_table_size = 128M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
thread_concurrency = 8
query_cache_size = 128M
ft_min_word_len = 8
#memlock
thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log_slave_updates
#log
#log_warnings
log_slow_queries
long_query_time = 6
log_long_format
................

代码如下:


[client]
port    = 3306
socket    = /tmp/mysql.sock
default-character-set = utf8 #设置客户端的字符编码
[mysqld]
# generic configuration options
port    = 3306
socket    = /tmp/mysql.sock
#*** char set ***
character-set-server = utf8 #设置服务器端的字符编码
            
#*** network ***
back_log = 512
#skip-networking #默认没有开启
max_connections = 3000
max_connect_errors = 30
table_open_cache = 4096
#external-locking #默认没有开启
max_allowed_packet = 32M
max_heap_table_size = 128M
            
# *** global cache ***
read_buffer_size = 8M
read_rnd_buffer_size = 64M
sort_buffer_size = 16M
join_buffer_size = 16M
            
# *** thread ***
thread_cache_size = 16
thread_concurrency = 8
thread_stack = 512K
            
# *** query cache ***
query_cache_size = 128M
query_cache_limit = 4M
            
# *** index ***
ft_min_word_len = 8
            
#memlock #默认没有开启
default-storage-engine = INNODB
transaction_isolation = REPEATABLE-READ
            
# *** tmp table ***
tmp_table_size = 64M
            
# *** bin log ***
log-bin=mysql-bin
binlog_cache_size = 4M
binlog_format=mixed
#log_slave_updates #默认没有开启
#log #默认没有开启,此处是查询日志,开启会影响服务器性能
log_warnings #开启警告日志
            
# *** slow query log ***
slow_query_log
long_query_time = 10
# *** Replication related settings
server-id = 1
#server-id = 2
#master-host =
#master-user =
#master-password =
#master-port =
#read_only
#*** MyISAM Specific options
key_buffer_size = 128M
bulk_insert_buffer_size = 256M
myisam_sort_buffer_size = 256M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
            
# *** INNODB Specific options ***
#skip-innodb #默认没有开启
innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_size = 6G #注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制, 所以不要设置的太高.
innodb_data_file_path = ibdata1:10M:autoextend
#innodb_data_home_dir =
innodb_write_io_threads = 8
innodb_read_io_threads = 8
#innodb_force_recovery=1
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
#说明:innodb_flush_log_at_trx_commit = 2 如果是游戏服务器,建议此值设置为2;如果是对数据安全要求极高的应用,建议设置为1;设置为0性能最高,但如果发生故障,数据可能会有丢失的危险!默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统挂了时才可能丢数据。
#innodb_fast_shutdown
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
#innodb_log_group_home_dir
innodb_max_dirty_pages_pct = 90
#innodb_flush_method=O_DSYNC
innodb_lock_wait_timeout = 120
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 2048M
sort_buffer_size = 2048M
read_buffer = 32M
write_buffer = 32M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 10240

好了,上面就是MySQL MyISAM 优化设置的一些个人经验,感谢这些人的分享。希望大家以后多多支持。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vergleich der Auswahl der MySQL-Speicher-Engine: Bewertung des InnoDB-, MyISAM- und Speicherleistungsindex Vergleich der Auswahl der MySQL-Speicher-Engine: Bewertung des InnoDB-, MyISAM- und Speicherleistungsindex Jul 26, 2023 am 11:25 AM

Vergleich der Auswahl der MySQL-Speicher-Engine: Bewertung des InnoDB-, MyISAM- und Speicherleistungsindex Einführung: In der MySQL-Datenbank spielt die Wahl der Speicher-Engine eine entscheidende Rolle für die Systemleistung und Datenintegrität. MySQL bietet eine Vielzahl von Speicher-Engines. Zu den am häufigsten verwendeten Engines gehören InnoDB, MyISAM und Memory. In diesem Artikel werden die Leistungsindikatoren dieser drei Speicher-Engines bewertet und anhand von Codebeispielen verglichen. 1. InnoDB-Engine InnoDB ist mein

So verwenden Sie MyISAM- und InnoDB-Speicher-Engines, um die MySQL-Leistung zu optimieren So verwenden Sie MyISAM- und InnoDB-Speicher-Engines, um die MySQL-Leistung zu optimieren May 11, 2023 pm 06:51 PM

MySQL ist ein weit verbreitetes Datenbankverwaltungssystem und verschiedene Speicher-Engines haben unterschiedliche Auswirkungen auf die Datenbankleistung. MyISAM und InnoDB sind die beiden am häufigsten verwendeten Speicher-Engines in MySQL. Sie haben unterschiedliche Eigenschaften und eine unsachgemäße Verwendung kann die Leistung der Datenbank beeinträchtigen. In diesem Artikel wird erläutert, wie Sie diese beiden Speicher-Engines verwenden, um die MySQL-Leistung zu optimieren. 1. MyISAM-Speicher-Engine MyISAM ist die am häufigsten verwendete Speicher-Engine für MySQL. Ihre Vorteile sind hohe Geschwindigkeit und geringer Speicherplatz. MyISA

Tipps und Strategien zur Verbesserung der Leseleistung der MySQL-Speicher-Engine: Vergleichende Analyse von MyISAM und InnoDB Tipps und Strategien zur Verbesserung der Leseleistung der MySQL-Speicher-Engine: Vergleichende Analyse von MyISAM und InnoDB Jul 26, 2023 am 10:01 AM

Tipps und Strategien zur Verbesserung der Leseleistung der MySQL-Speicher-Engine: Vergleichende Analyse von MyISAM und InnoDB Einführung: MySQL ist eines der am häufigsten verwendeten relationalen Open-Source-Datenbankverwaltungssysteme, das hauptsächlich zum Speichern und Verwalten großer Mengen strukturierter Daten verwendet wird. In Anwendungen ist die Leseleistung der Datenbank oft sehr wichtig, da Lesevorgänge in den meisten Anwendungen die Hauptoperationsart darstellen. Dieser Artikel konzentriert sich auf die Verbesserung der Leseleistung der MySQL-Speicher-Engine und konzentriert sich auf eine vergleichende Analyse von MyISAM und InnoDB, zwei häufig verwendeten Speicher-Engines.

Leistungsvergleich der MySQL-Speicher-Engine: Experiment zum Vergleich der Lese- und Schreibleistung von MyISAM und InnoDB Leistungsvergleich der MySQL-Speicher-Engine: Experiment zum Vergleich der Lese- und Schreibleistung von MyISAM und InnoDB Jul 25, 2023 pm 01:29 PM

Leistungsvergleich der MySQL-Speicher-Engine: Experiment zum Vergleich der Lese- und Schreibleistung von MyISAM und InnoDB Einführung: MySQL ist ein weit verbreitetes relationales Datenbankverwaltungssystem. Es unterstützt eine Vielzahl von Speicher-Engines. Die beiden am häufigsten verwendeten Engines sind MyISAM und InnoDB. In diesem Artikel wird die Lese- und Schreibleistung dieser beiden Speicher-Engines untersucht und durch Experimente verglichen. 1. Einführung in die MyISAM-Engine Die MyISAM-Engine ist die Standardspeicher-Engine von MySQL und wird in frühen Versionen häufig verwendet. es nutzt

So verbessern Sie die MySQL-Leistung mit MyISAM-Index-Caching So verbessern Sie die MySQL-Leistung mit MyISAM-Index-Caching May 11, 2023 pm 07:31 PM

MySQL ist ein weit verbreitetes relationales Open-Source-Datenbankverwaltungssystem. Beim Umgang mit großen Datenmengen ist eine gute Performance entscheidend. Der MyISAM-Index-Cache ist eine sehr wichtige Funktion von MySQL, die die Geschwindigkeit und Leistung des Datenlesens erheblich verbessern kann. In diesem Artikel befassen wir uns eingehend mit der Funktionsweise des MyISAM-Indexcaches und der Konfiguration und Optimierung des Indexcaches zur Verbesserung der MySQL-Leistung. Was ist der MyISAM-Index-Cache? MyISAM ist ein Speicherindex in MySQL

Wie wählt man die geeignete MySQL-Speicher-Engine aus? Vergleichen Sie die Vor- und Nachteile von MyISAM und InnoDB Wie wählt man die geeignete MySQL-Speicher-Engine aus? Vergleichen Sie die Vor- und Nachteile von MyISAM und InnoDB Jul 27, 2023 am 08:05 AM

Wie wählt man die richtige MySQL-Speicher-Engine aus? Vergleichen Sie die Vor- und Nachteile von MyISAM und InnoDB. Einführung: MySQL ist derzeit das beliebteste und am weitesten verbreitete relationale Datenbankverwaltungssystem. In MySQL können wir verschiedene Speicher-Engines auswählen, um Daten entsprechend unterschiedlichen Anforderungen zu verwalten. Dieser Artikel konzentriert sich auf zwei häufig verwendete Speicher-Engines: MyISAM und InnoDB und vergleicht ihre Vor- und Nachteile. Durch die Lektüre dieses Artikels erfahren Sie, wie Sie den geeigneten MySQL-Speicher basierend auf den tatsächlichen Anforderungen auswählen.

Vergleichende Analyse von InnoDB und MyISAM in MySQL Vergleichende Analyse von InnoDB und MyISAM in MySQL Jun 02, 2023 pm 04:16 PM

Vergleich von InnoDB und MyISAM1, Speicherstruktur MyISAM: Jedes MyISAM wird als drei Dateien auf der Festplatte gespeichert. Dies sind: Tabellendefinitionsdateien, Datendateien und Indexdateien. Der Name der ersten Datei beginnt mit dem Namen der Tabelle und die Erweiterung gibt den Dateityp an. .frm-Dateien speichern Tabellendefinitionen. Die Erweiterung der Datendatei ist .MYD (MYData). Die Erweiterung der Indexdatei ist .MYI (MYIndex). InnoDB: Alle Tabellen werden in derselben Datendatei (oder mehreren Dateien oder unabhängigen Tabellenbereichsdateien) gespeichert. Die Größe der InnoDB-Tabelle ist nur durch die Größe der Betriebssystemdatei begrenzt, die im Allgemeinen 2 GB beträgt. 2. Speicherplatz MyISAM: MyISAM unterstützt

Entdecken Sie die Leistungsoptimierungsstrategien der MySQL MyISAM-Engine Entdecken Sie die Leistungsoptimierungsstrategien der MySQL MyISAM-Engine Jul 25, 2023 pm 12:16 PM

Erkundung der Leistungsoptimierungsstrategien von MySQL MyISAM-Engine Einführung: In der MySQL-Datenbank ist die MyISAM-Engine eine der am häufigsten verwendeten Datenbank-Engines. Aufgrund seiner Einfachheit, einfachen Verwaltung und hohen Leistung wird es häufig in verschiedenen Datenbankanwendungen eingesetzt. Da jedoch die Menge der Datenbankdaten immer größer wird und die Komplexität des Abfragezugriffs zunimmt, wird die Leistungsoptimierung der MyISAM-Engine immer wichtiger. In diesem Artikel wird die Leistungsoptimierungsstrategie der MyISAM-Engine erläutert und anhand von Beispielcode veranschaulicht. 1. Richtig verwenden

See all articles