V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
skyboy
V2EX  ›  问与答

mysql 字符集和引擎的选择

  •  
  •   skyboy · 2016-11-29 15:33:40 +08:00 · 1438 次点击
    这是一个创建于 2917 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做一个评论网站,你们说字符集用 utf8 好,还是 utf8mb4 好,然后引擎用 innodb,myisam 哪个好。

    另外, mysql,mariadb,perconal,postgresql , sqlite 这几个数据库,到底用哪个综合各方面性能好。

    12 条回复    2016-11-30 08:36:51 +08:00
    letitbesqzr
        1
    letitbesqzr  
       2016-11-29 15:38:11 +08:00
    utf8mb4
    innodb
    mariadb or postgresql
    skyboy
        2
    skyboy  
    OP
       2016-11-29 15:52:54 +08:00
    @letitbesqzr xtradb 呢。
    mooncakejs
        3
    mooncakejs  
       2016-11-29 15:56:09 +08:00
    postgresql 用的很好,除了 跨表不能查询转移数据之外
    skyboy
        4
    skyboy  
    OP
       2016-11-29 15:57:55 +08:00
    没有自主研发能力的企业, MySQL 、 Percona 、 MariaDB 到底该选哪个?

    归档于:观点评论 时间: 2015-03-25 作者:zzbaike 评论:0 更多 0
    今天看到 SOHU-DBA 公众号推送的文章:《 MySQL 分支的选择: Percona 还是 MariaDB 》,原文出处: http://www.biaodianfu.com/mysql-percona-or-mariadb.html ,这个文章比较长,有兴趣的可以找到原文看看,我也来简单说下我的看法。

    就目前而言,我个人优先推荐使用 Percona 分支版本,它和官方版本相对是最近的,迁移切换的代价也很小。我从 2008 年开始就使用 Percona 分支版本到现在了,当初我们可是国内最大的 Percona 免费用户。最早只是在官方版本上打了一些补丁,现在已经发展形成了自己的 XtraDB 引擎,提供 PXC 高可用解决方案,并且附带了 percona-toolkit 等 DBA 管理工具箱,非常方便。

    而 MariaDB 分支则做了较大改动,虽然也集成了 XtraDB 引擎的大多数优势,但从官方版本迁移过去,不确定因素等风险还是挺大的,比如 GTID 不兼容、查询优化器个别时候更糟糕等等,不过 MariaDB 还是挺值得期待的。
    综上,建议先继续使用 Percona 分支,等 MariaDB 分支相对更成熟了再用不迟,对这两个分支都不感兴趣或不敢用的,再最后选择官方版本吧,把我上面的话当耳边风就行了,但我要告诉大家的是,在官方版本上能遇到奇葩的事情更多,尤其是查询优化器,快吐血了。
    skyboy
        5
    skyboy  
    OP
       2016-11-29 16:00:31 +08:00
    @mooncakejs 我测试了下,发现 2000 W记录一个表中, postgresql 占用记录最大的。而且在备份数据删除数据库,重新建立数据库时,竟然卡住不动了。弄得 linux 虚拟机也暂停死机,只好重启了。这种情况 mysql5.7 没有的。另外,在查询带索引的字段上, postgresql9.6 和 mysql 5.7 innodb 速度差不多。
    skyboy
        6
    skyboy  
    OP
       2016-11-29 16:02:30 +08:00
    其实 percona 和 mariadb 都是对于 innodb 的改进, mariadb 里边有带了 percona 版本的 xtradb ,相对来说 percona 对于 innodb 方面的改进提升的性能比较明显, high performance mysql 这本书就是 percona 团队写的, mariadb 的优势主要是原来的 mysql 之父创立的,相对来说对于 mysql 上层的优化比较多点,底层的存储引擎还是 percona 的部分。。。 当然如果对于性能还有更高要求的话,可以考虑用 tokudb , tokudb 的引擎采用的是分形树结果,效率更牛逼,可惜是收费的。。。
    skyboy
        7
    skyboy  
    OP
       2016-11-29 16:07:56 +08:00
    @letitbesqzr 用 utf8mb4 会比用 utf8 多增加 30%的体积吗。
    mooncakejs
        8
    mooncakejs  
       2016-11-29 16:16:11 +08:00
    @skyboy 卡死的问题还没碰到过(采集库 2e 多了没分表),硬盘占用倒并不在意,不过 pg 导入导出之类没有 mysql 方便,全文搜索目前有中文可以支持(我选 pg 的主要目的,简单够用).
    akira
        9
    akira  
       2016-11-29 16:28:10 +08:00
    mysql5.6+
    innodb
    utf8 general

    建议直接用现成的云数据库服务,避免很多麻烦事
    wmttom
        10
    wmttom  
       2016-11-30 08:28:28 +08:00 via iPhone
    utf8mb4 才能支持 emoji ,既然是评论网站一定需要处理 emoji
    自己维护的话 percona 会更 dba 友好
    innodb ( xtradb )从各方面来说是默认的最好选择,但是要用对,不要主键乱序搞的插入页分裂,特定场景 tokudb 有很大的优势
    skyboy
        11
    skyboy  
    OP
       2016-11-30 08:30:51 +08:00
    @wmttom 什么是 emoji 表情符号,能打几个给我插入测试下吗。另外 tokudb 比 percona ,是不是前者是要钱的。想用免费开源的宽松的 MIT 协议的。
    wmttom
        12
    wmttom  
       2016-11-30 08:36:51 +08:00 via iPhone
    🤔 iOS 输入法默认带的表情就是 emoji ,大家说的 tokudb 是指 MySQL 用的 tokudb 存储引擎
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1138 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:38 · PVG 07:38 · LAX 15:38 · JFK 18:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.