
1 lvfujun 2015-08-27 18:18:38 +08:00 锁+队列! |
2 flycare 2015-08-27 18:20:22 +08:00 1.上 TokuDB ,适合高频率 insert ,少 update 的场景 2.走消息队列 3.先存 cache 在同步 |
3 kier 2015-08-27 18:20:40 +08:00 数据库连接时设成 autocommit 吧 |
4 eliteYang 2015-08-27 18:29:01 +08:00 这种高并发实时性数据,建议使用 nosql ,不过你的 mysql 最多就是卡,不太可能出现你说的问题,除非就是卡的时间太长了,导致 session 失效了。还有,如果确认是 InnoDB ,只要不是特别实时的入库应该还好了。 |
6 sbmzhcn OP Python gevent ''' def get_session (scoped=False, engine=None, db_host=None, db_name=None, db_user=None, db_pass=None ): if not engine: engine = get_engine (db_host, db_name, db_user, db_pass ) session_factory = sessionmaker ( bind=engine, autoflush=True, autocommit=False, ) if scoped: ScopedSession = scoped_session (session_factory ) return ScopedSession else: return session_factory Session = get_session (db_host=db_host, db_name=db_name, db_user=db_user, db_pass=db_pass ) session = Session () server = DebuggingServer ((HOST, PORT ), session=session ) server_thread = threading.Thread (target=server.serve_forever ) ''' 这样写有啥问题? |
7 daiv 2015-08-27 18:54:26 +08:00 ssdb 你考虑一下 :) 我一直在用 |
8 akira 2015-08-27 19:33:10 +08:00 队列应该就足够了 |
11 xiangace 2015-08-28 10:24:43 +08:00 可能是 session 之前的操作抛出了异常, 但没有 rollback. 你的场景可能是批量写,遇到异常时处理下,并输出 log. web application 里用的 session, 每次 request 其实也可能存在这个问题, 但多数时候没发现是因为 设置 autocommit 之类或者严格处理 rollback, 另外框架可能会帮你 session.close 注意是有 session.close 这部,在 commit/rollback 之后的操作, 因此在之后请求来时,不会出现 这个问题. |
12 vivisidea 2015-08-28 13:28:09 +08:00 大批量数据 insert 的话还可以考虑 batch 的 |