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 的
|