gpt4 book ai didi

针对完全静态数据库的 MySQL 优化技巧?

转载 作者:可可西里 更新时间:2023-11-01 08:55:06 24 4
gpt4 key购买 nike

我有一个大小约为 20 GB 的数据库。我想知道是否有任何针对静态数据库的优化技巧。当我指的是静态时,我并不是指不经常更改,我的意思是根本不会更改。是否有任何极端的值设置或其他通常您远离 volatile 数据库的东西,这可以使真正的静态数据库受益?特别是考虑到只有 SELECT 语句而绝对没有 INSERT 语句?我正在使用 MyISAM 表。

-- 罗施勒

最佳答案

由于一切都是 MyISAM,因此您需要关注两件主要事情:

key 缓存

用于缓存的主要机制是键缓存。它只缓存 .MYI 文件的索引页。要调整 key 缓存的大小,请运行以下查询:

SELECT CONCAT(ROUND(KBS/POWER(1024,IF(PowerOfTwo<0,0,IF(PowerOfTwo>3,0,PowerOfTwo)))+0.4999),
SUBSTR(' KMG',IF(PowerOfTwo<0,0,IF(PowerOfTwo>3,0,PowerOfTwo))+1,1)) recommended_key_buffer_size
FROM (SELECT LEAST(POWER(2,32),KBS1) KBS FROM
(SELECT SUM(index_length) KBS1 FROM information_schema.tables
WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) AA) A,
(SELECT 2 PowerOfTwo) B;

根据您当前的数据集 (the query will cap the recommendation at 4G (4096M)),这将为 MyISAM key 缓存 (key_buffer_size) 提供推荐设置。对于 32 位操作系统,4GB 是限制。对于 64 位,8GB。

全文索引

您应该更改停用词列表。您可能想要更改停用词,因为 MySQL 不会索引 this list of 643 words .尝试创建您自己的停用词列表并更改最小词长。

第 1 步)创建您自己的停用词列表。您可以添加“a”、“an”和“the”。

echo "a" > /var/lib/mysql/custom_stopwords.txt<BR>
echo "an" >> /var/lib/mysql/custom_stopwords.txt<BR>
echo "the" >> /var/lib/mysql/custom_stopwords.txt

第 2 步)将这些选项添加到/etc/my.cnf

ft_min_word_len=2
ft_stopword_file=/var/lib/mysql/custom_stopwords.txt

第三步)服务mysql重启

第 4 步)创建新的 FULLTEXT 索引。重新启动 mysql 之前的任何现有 FULLTEXT 索引都应重新编制索引。

试试这些想法!!!

关于针对完全静态数据库的 MySQL 优化技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com