[MySQL FAQ]系列 -- 同样默认配置,为何mysql比pgsql慢多了

如果问这样的问题,我只能说你很菜鸟,哈哈。

不过,也不能全怪你,因为mysql的默认配置确实比较差劲,也没做最基本的优化调整。

现在的服务器,即使是办公用的PC,内存也大多1~2G了吧,默认配置分配给innodb的buffer pool才8M,真是服了,多少年了,也不改改。

还有另一个害人的地方是innodb数据文件的默认大小是10M,这个一般情况下,建议至少大于256M或512M

最后给大家一个实用的小配置:秀下我的mysql客户端配置

技术相关:

评论

也一直用类似的客户端配置,叶兄能做个链接吗?你的已经加上

这个我弄过一个测试。当然我是数据库白痴自己捣鼓的。请答疑哈。

innodb配置
basedir = "E:/xampp/mysql/"
datadir = "E:/xampp/mysql/data/"
port = 3306
socket = "MySQL"
skip-locking
key_buffer = 512M
max_allowed_packet = 32M
table_cache = 1024
sort_buffer_size = 1G
net_buffer_length = 8K
read_buffer_size = 512M
read_rnd_buffer_size = 256M
myisam_sort_buffer_size = 8M

key_buffer_size = 512M
innodb_force_recovery = 4
tmp_table_size = 2G
max_tmp_tables = 512
innodb_buffer_pool_size = 1G
innodb_additional_mem_pool_size = 128M

pgsql配置
shared_buffers = 512MB # min 128kB
work_mem = 1000MB # min 64kB
maintenance_work_mem = 16MB # min 1MB

性能差距很明显啊。
250W记录
无索引
Select count(uuid) as num,date_part(‘hour’,time) as hour from log where type in(1,10,6,11) group by hour,type order by hour

pgsql 2.18s
mysql 5.52s

贴上一些其他信息:
show create table xxx 以及各自的执行计划,用explain分析的结果

自己测试 很少用innodb 吧?

新版本的mysql发型包里,已经把innodb设置成默认引擎了