MySQL内核开发者, 《高性能MySQL 第三版》译者之一,活跃于MySQL社区,BugList,etc...
用sysbench去压测开启了semisync的实例, 拿pt-pmp抓下调用栈, 一目了然
varchar是变长字符串呀,设置大了不会产生实际浪费.
配置要根据你自己的机器来设定啊,比如Buffer pool size,能大尽量大;如果你的写入负载很大的话,redo log文件尽量配大点,防止频繁checkpoint导致的性能衰减;还有Lru scan depth,page cleaner线程个数来优化后台刷脏; 2. 另外看你是否需要强持久化,比如sync_binlog是否设为1, innodb flush log at commit也设为1 这都对性能有所影响(但强持久化数据),看你自己的取舍和实际场景.
官方不给推荐配置是有理由的。。。。没有十全十美的配置,只有适合自己业务和服务器的
RR级别在MySQL里意味着在一个事务活跃期间,快照会一直打开,这可能会导致Undo/垃圾数据不能及时清理,Undo空间膨胀。没啥业务上必须的理由,尽量用RC
没get到问题点, 你问的是客户端如何发起回滚么 ??