V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
GeekHub
RickyC
V2EX  ›  MySQL

MySQL 单表 2000 万条数据, 如何提高 筛选查询 和 多用户并发查询 的性能 ?

  •  
  •   RickyC · 4 天前 · 1181 次点击
    MySQL 单表 2000 万条数据, 如何提高 筛选查询 和 多用户并发查询 的性能 ?
    网上有没有 Step by Step 的详细教程?
    使用 PHP 语言, 我以前也只有 PHP 等经验, 没有大数据处理经验.
    18 条回复    2020-09-16 15:43:26 +08:00
    fhsan
        1
    fhsan   4 天前
    读写分离,联合索引、字段冗余、缓存常用数据,可以应付
    和 php 没啥关系,2000 万不算啥大数据
    RickyC
        2
    RickyC   4 天前
    哎, 哪里有教程...
    aimaodeyuer
        3
    aimaodeyuer   4 天前
    2000w 也不是很大的数据量,如果查询条件不是特别多,建立合理的索引也能 hold 住。如果条件筛选太多,没办法建索引的话就往 es 同步一份数据,查询都走 es 。
    sadfQED2
        4
    sadfQED2   4 天前 via Android
    才 2000 万数据,你看下慢日志,然后合理连索引就能搞定。再不行就升级机器,固态加上,内存加大,带宽加宽。。。。


    最后的最后,实在不行了再考虑楼上说的,加 es,读写分离啥的
    baiduyixia
        5
    baiduyixia   4 天前
    @RickyC 看我名字
    guruiqin
        6
    guruiqin   4 天前
    简单一点可以使用 mysql 分区(具体按照用户注册时间 或者其他进行分区)
    这样如果查询覆盖分区的话那么数据量会少很多
    RickyC
        7
    RickyC   4 天前
    @baiduyixia 两条腿走, 一直在百度, 谢谢
    noahsophie
        8
    noahsophie   4 天前
    建议把问题具体化再去搜索,有针对性的搜索,这样提问题很难有合适的回答~
    wysnylc
        9
    wysnylc   4 天前
    @baiduyixia #5 哈哈哈哈
    someonedeng
        10
    someonedeng   4 天前
    有时候加个索引就能解决问题了,2000 不算非常大,但是 mysql 不建议这么大一个表吧= =,实在不行再分个区分个表啥的
    kiracyan
        11
    kiracyan   4 天前
    2000 万慢的话不是没加索引就是单行数据过大吧
    opengps
        12
    opengps   4 天前 via Android
    第一步,硬盘够快,物质基础才是第一步
    第二步,简化查询条件,让查询尽可能都按照预期的索引执行
    要并发查询,用多个实例进行读写分离
    594duck
        13
    594duck   3 天前 via iPhone
    2000 万行,先看索引,在看查询一次要扫描多少行。

    你的 mysql 什么配置,配置太低也不行。
    butterfly1211
        14
    butterfly1211   3 天前
    数据库中间件
    zpfhbyx
        15
    zpfhbyx   3 天前
    @someonedeng 2000w 没必要上分区 分表吧。。现在的表 2c4G 下扛个大几 kw 没啥问题啊
    someonedeng
        16
    someonedeng   3 天前
    @zpfhbyx 我手头上有个 1000 万没分的,某天瞄一眼变成 1 亿了 = =,不过这个还是得看做的什么,有些业务并不是对查询时间这么敏感,具体情况具体分析嘛
    wangritian
        17
    wangritian   3 天前
    吃透索引,亿级以内的数据查询很容易搞定,除非你只有 like %...%这一个条件
    推荐一下极客时间的 mysql 实战 45 讲,非利益相关,纯粹觉得写的好
    AmberJiang
        18
    AmberJiang   3 天前
    2000 万还好吧 建议可以做索引
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1305 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 18:18 · PVG 02:18 · LAX 11:18 · JFK 14:18
    ♥ Do have faith in what you're doing.