表数据量不算太大,1,2百万吧,但并发多。
用户表,主键字段userid int(11),有索引字段注册时间regtime int(11),,索引字段最新登陆时间logintime int(11) 等,最常用的查询也就这几个字段
现在问题,
1.userid是主键,如果分区只能用userid做分区列么?如果只按logintime范围查询,是不是分区后查询会更慢?毕竟按后面2和时间条件查询也很频繁。2.logintime字段经常会更新,这样常更新的字段适合做分区列吗?3.如果用主键userid做分区,查询指定一条记录where userid=10000,这样分区不分区性能差别大吗?4.对数据量大,并发高的应用,用分区好还是分表好?不分表考虑程序的修改,只是数据库读写性能。分区分表性能

解决方案 »

  1.   

    1.userid是主键,如果分区只能用userid做分区列么?如果只按logintime范围查询,是不是分区后查询会更慢?毕竟按后面2和时间条件查询也很频繁。
    是的 更慢2.logintime字段经常会更新,这样常更新的字段适合做分区列吗?
    不建议分区3.如果用主键userid做分区,查询指定一条记录where userid=10000,这样分区不分区性能差别大吗?
    差别不大4.对数据量大,并发高的应用,用分区好还是分表好?不分表考虑程序的修改,只是数据库读写性能。
    真没必要分区
      

  2.   


    肯定想提高整个数据库的性能啊,有按userid查询的语句,有按登录时间范围查询的,也有按注册时间范围查询的总听说分区后性能提高很多。