› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
git00ll
V2EX  ›  MySQL

数据库内数据太多,查询条件太多该如何优化

  •  
  •   git00ll · Jul 10, 2021 · 4073 views
    This topic created in 1908 days ago, the information mentioned may be changed or developed.

    数据库:mysql


    数据预计可达到3 亿条数据,15 个字段,但是需要 9 个字段作为可选参数做查询。 因为字段都是可选的,不知道索引如何加。还要根据创建时间逆序排序分页。

    不加索引使用数据库全表扫描硬抗估计不行,除了走 ES 外,是否有其他更好的方案。


    难点就在于查询字段都是可选的,无法创建合适的索引,无法做合适的分表方案。


    搞个 myisan 从库,不加索引,不知是否可行?


    😔😔

    16 replies  •  2021-07-12 17:32:03 +08:00
    ccde8259
        1
    ccde8259  
       Jul 10, 2021 via iPhone
    创建时间排序可以使用主键自增进行基于主键排序,分页以后变成一个 TopN 问题。剩下 9 个字段直接 Using Where 有多慢?
    matrix67
        2
    matrix67  
       Jul 10, 2021
    曹政有个这个文档,可以搜索看看 《 Mysql 性能优化教程.doc 》
    wangxin13g
        4
    wangxin13g  
       Jul 10, 2021
    3 亿的数据已经不适合用 mysql 来存东西了,你插数据进去都费劲,换 mongo 或者列数据库或者 ES 吧
    zhengfan2016
        5
    zhengfan2016  
       Jul 10, 2021
    很好奇支撑 3 亿数据库查询用的是什么配置的服务器
    sy20030260
        6
    sy20030260  
       Jul 10, 2021
    核心也不是多维度查询的问题了,而是亿级数据 InnoDB 单表存储,完全是个不具备拓展性的方案。
    建议先重新评审下需求,3 亿数据,却没有任何一个字段或元组可以作为主维度来进行查询,合理吗?
    如果不合理,确定一个合理的主维度,做下分表,前端限制或默认带主维度进行查询就好了。
    一般来说,99.9%的情况都是需求不合理,剩下 0.1%才是确实需要用 ES 或其他查询引擎来解决的场景。
    wdlth
        7
    wdlth  
       Jul 10, 2021   ❤️ 1
    上 ClickHouse
    joApioVVx4M4X6Rf
        8
    joApioVVx4M4X6Rf  
       Jul 10, 2021
    @matrix67 求资源谢谢
    ericbize
        9
    ericbize  
       Jul 10, 2021 via iPhone
    主要是看看能不能减少数据, 其次就是选好主键, 多个联合或者排序的话考虑 联合索引,但是要注意顺序。 然后是 搭个从库 buff pool 搞大点, 单跑内存不跑硬盘!
    aaniao002
        10
    aaniao002  
       Jul 10, 2021 via Android
    oracle+索引,分布式数据库,redis 都可以秒出
    matrix67
        11
    matrix67  
       Jul 11, 2021
    @v2exblog #8 《 Mysql 性能优化教程.doc 》 就是这个啊
    zlowly
        12
    zlowly  
       Jul 12, 2021
    换用列式存储的数据库,例如上面提到的阿里开源的 clickhouse,或者国产的南大 gbase 等。
    F281M6Dh8DXpD1g2
        13
    F281M6Dh8DXpD1g2  
       Jul 12, 2021
    @zlowly 什么时候 clickhouse 变成阿里开源的了
    阿里的程序员会俄文?
    zhaozs1
        14
    zhaozs1  
       Jul 12, 2021
    clickhouse,老毛子的搞出来的
    zhaozs1
        15
    zhaozs1  
       Jul 12, 2021
    clickhouse,单机 64 内存,ssd 硬盘 无缝对接 mysql 3 亿数据基本秒查的
    zhaozs1
        16
    zhaozs1  
       Jul 12, 2021
    处理器 Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz 2.90 GHz
    机带 RAM 64.0 GB 我自己这个机器做环境模拟 上亿数据单机抗问问的,10 个条件没有问题的,统计个 count 也很快的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2512 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 11:12 · PVG 19:12 · LAX 04:12 · JFK 07:12
    ♥ Do have faith in what you're doing.