Maison base de données tutoriel mysql 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 优化设置的一些个人经验,感谢这些人的分享。希望大家以后多多支持。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD
Musée à deux points: toutes les expositions et où les trouver
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparaison de sélection du moteur de stockage MySQL : évaluation de l'indice de performance InnoDB, MyISAM et mémoire Comparaison de sélection du moteur de stockage MySQL : évaluation de l'indice de performance InnoDB, MyISAM et mémoire Jul 26, 2023 am 11:25 AM

Comparaison de sélection du moteur de stockage MySQL : évaluation de l'indice de performance InnoDB, MyISAM et mémoire Introduction : Dans la base de données MySQL, le choix du moteur de stockage joue un rôle essentiel dans les performances du système et l'intégrité des données. MySQL fournit une variété de moteurs de stockage, les moteurs les plus couramment utilisés incluent InnoDB, MyISAM et Memory. Cet article évaluera les indicateurs de performances de ces trois moteurs de stockage et les comparera à travers des exemples de code. 1. Moteur InnoDB InnoDB est mon

Comment utiliser les moteurs de stockage MyISAM et InnoDB pour optimiser les performances de MySQL Comment utiliser les moteurs de stockage MyISAM et InnoDB pour optimiser les performances de MySQL May 11, 2023 pm 06:51 PM

MySQL est un système de gestion de bases de données largement utilisé et différents moteurs de stockage ont des impacts différents sur les performances des bases de données. MyISAM et InnoDB sont les deux moteurs de stockage les plus couramment utilisés dans MySQL. Ils ont des caractéristiques différentes et une mauvaise utilisation peut affecter les performances de la base de données. Cet article explique comment utiliser ces deux moteurs de stockage pour optimiser les performances de MySQL. 1. Moteur de stockage MyISAM MyISAM est le moteur de stockage le plus couramment utilisé pour MySQL. Ses avantages sont une vitesse rapide et un petit espace de stockage. MonISA

Conseils et stratégies pour améliorer les performances de lecture du moteur de stockage MySQL : analyse comparative de MyISAM et InnoDB Conseils et stratégies pour améliorer les performances de lecture du moteur de stockage MySQL : analyse comparative de MyISAM et InnoDB Jul 26, 2023 am 10:01 AM

Conseils et stratégies pour améliorer les performances de lecture du moteur de stockage MySQL : Analyse comparative de MyISAM et InnoDB Introduction : MySQL est l'un des systèmes de gestion de bases de données relationnelles open source les plus couramment utilisés, principalement utilisé pour stocker et gérer de grandes quantités de données structurées. Dans les applications, les performances de lecture de la base de données sont souvent très importantes, car les opérations de lecture constituent le principal type d'opérations dans la plupart des applications. Cet article se concentrera sur la façon d'améliorer les performances de lecture du moteur de stockage MySQL, en se concentrant sur une analyse comparative de MyISAM et InnoDB, deux moteurs de stockage couramment utilisés.

Comparaison des performances du moteur de stockage MySQL : expérience de comparaison des performances de lecture et d'écriture MyISAM et InnoDB Comparaison des performances du moteur de stockage MySQL : expérience de comparaison des performances de lecture et d'écriture MyISAM et InnoDB Jul 25, 2023 pm 01:29 PM

Comparaison des performances du moteur de stockage MySQL : expérience de comparaison des performances de lecture et d'écriture MyISAM et InnoDB Introduction : MySQL est un système de gestion de base de données relationnelle largement utilisé. Il prend en charge une variété de moteurs de stockage, les deux moteurs les plus couramment utilisés sont MyISAM et InnoDB. Cet article explorera les performances de lecture et d'écriture de ces deux moteurs de stockage et les comparera à travers des expériences. 1. Introduction au moteur MyISAM Le moteur MyISAM est le moteur de stockage par défaut de MySQL et est largement utilisé dans les premières versions. il utilise

Comment améliorer les performances de MySQL avec la mise en cache des index MyISAM Comment améliorer les performances de MySQL avec la mise en cache des index MyISAM May 11, 2023 pm 07:31 PM

MySQL est un système de gestion de bases de données relationnelles open source largement utilisé. De bonnes performances sont cruciales lorsque l’on traite d’énormes volumes de données. Le cache d'index MyISAM est une fonctionnalité très importante de MySQL, qui peut considérablement améliorer la vitesse et les performances de lecture des données. Dans cet article, nous examinerons en profondeur le fonctionnement du cache d'index MyISAM et comment configurer et optimiser le cache d'index pour améliorer les performances de MySQL. Qu’est-ce que le cache d’index MyISAM ? MyISAM est un index de stockage dans MySQL

Comment choisir le moteur de stockage MySQL approprié ? Comparez les avantages et les inconvénients de MyISAM et InnoDB Comment choisir le moteur de stockage MySQL approprié ? Comparez les avantages et les inconvénients de MyISAM et InnoDB Jul 27, 2023 am 08:05 AM

Comment choisir le bon moteur de stockage MySQL ? Comparez les avantages et les inconvénients de MyISAM et InnoDB Introduction : MySQL est actuellement le système de gestion de bases de données relationnelles le plus populaire et le plus utilisé. Dans MySQL, nous pouvons choisir différents moteurs de stockage pour gérer les données afin de répondre à différents besoins. Cet article se concentrera sur deux moteurs de stockage couramment utilisés : MyISAM et InnoDB, et comparera leurs avantages et inconvénients. En lisant cet article, vous comprendrez comment choisir le stockage MySQL approprié en fonction des besoins réels.

Analyse comparative d'InnoDB et MyISAM dans MySQL Analyse comparative d'InnoDB et MyISAM dans MySQL Jun 02, 2023 pm 04:16 PM

En comparant InnoDB et MyISAM1, structure de stockage MyISAM : chaque MyISAM est stocké sous forme de trois fichiers sur le disque. Il s'agit des fichiers de définition de table, des fichiers de données et des fichiers d'index. Le nom du premier fichier commence par le nom de la table et l'extension indique le type de fichier. Les fichiers .frm stockent les définitions de table. L'extension du fichier de données est .MYD (MYData). L'extension du fichier d'index est .MYI (MYIndex). InnoDB : Toutes les tables sont stockées dans le même fichier de données (il peut s'agir de plusieurs fichiers ou de fichiers d'espace table indépendants). La taille de la table InnoDB n'est limitée que par la taille du fichier du système d'exploitation, qui est généralement de 2 Go. 2. Espace de stockage MyISAM : MyISAM prend en charge

Explorez les stratégies d'optimisation des performances du moteur MySQL MyISAM Explorez les stratégies d'optimisation des performances du moteur MySQL MyISAM Jul 25, 2023 pm 12:16 PM

Explorer les stratégies d'optimisation des performances du moteur MySQL MyISAM Introduction : Dans la base de données MySQL, le moteur MyISAM est l'un des moteurs de base de données couramment utilisés. Il est largement utilisé dans diverses applications de bases de données en raison de sa simplicité, de sa facilité de gestion et de ses hautes performances. Cependant, à mesure que la quantité de données de base de données continue de croître et que la complexité de l'accès aux requêtes augmente, l'optimisation des performances du moteur MyISAM devient très importante. Cet article discutera de la stratégie d'optimisation des performances du moteur MyISAM et l'illustrera à travers un exemple de code. 1. Utilisez le bon

See all articles