﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-长寿梦的编程手记-随笔分类-分布式与存储</title><link>http://www.cppblog.com/changshoumeng/category/20662.html</link><description>从事工作涉及各种主流编程语言，未来期望使用这些利器，投入到某一专业领域，近期对机器学习与数据挖掘感兴趣。</description><language>zh-cn</language><lastBuildDate>Fri, 17 Apr 2015 06:24:46 GMT</lastBuildDate><pubDate>Fri, 17 Apr 2015 06:24:46 GMT</pubDate><ttl>60</ttl><item><title>mongodb的测试报告</title><link>http://www.cppblog.com/changshoumeng/archive/2015/04/13/210328.html</link><dc:creator>长寿梦</dc:creator><author>长寿梦</author><pubDate>Mon, 13 Apr 2015 09:34:00 GMT</pubDate><guid>http://www.cppblog.com/changshoumeng/archive/2015/04/13/210328.html</guid><wfw:comment>http://www.cppblog.com/changshoumeng/comments/210328.html</wfw:comment><comments>http://www.cppblog.com/changshoumeng/archive/2015/04/13/210328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/changshoumeng/comments/commentRss/210328.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/changshoumeng/services/trackbacks/210328.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                                 &nbsp; &nbsp; &nbsp; 注意：测试方法或者推算思路，可能有问题，欢迎批评与指正。 &nbsp;&nbsp;Mongodb的版本:&nbsp;执行命令mongod --version得到&nbsp;&nbsp; "version" :"3.0.1",&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/changshoumeng/archive/2015/04/13/210328.html'>阅读全文</a><img src ="http://www.cppblog.com/changshoumeng/aggbug/210328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/changshoumeng/" target="_blank">长寿梦</a> 2015-04-13 17:34 <a href="http://www.cppblog.com/changshoumeng/archive/2015/04/13/210328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mongodb的主从测试与复制集测试的实验（附带测试的配置文件）</title><link>http://www.cppblog.com/changshoumeng/archive/2015/04/13/210327.html</link><dc:creator>长寿梦</dc:creator><author>长寿梦</author><pubDate>Mon, 13 Apr 2015 09:27:00 GMT</pubDate><guid>http://www.cppblog.com/changshoumeng/archive/2015/04/13/210327.html</guid><wfw:comment>http://www.cppblog.com/changshoumeng/comments/210327.html</wfw:comment><comments>http://www.cppblog.com/changshoumeng/archive/2015/04/13/210327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/changshoumeng/comments/commentRss/210327.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/changshoumeng/services/trackbacks/210327.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">1.mongodb 的版本</span></div><div><span style="font-size: 12px;">&nbsp; v3.0.1</span></div><div><span style="font-size: 12px;">&nbsp;&nbsp;</span></div><div><span style="font-size: 12px;">2.mongodb的用户权限分配</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">//创建超级管理用户</span></div><div><span style="font-size: 12px;">use admin</span></div><div><span style="font-size: 12px;">db.createUser(</span></div><div><span style="font-size: 12px;">&nbsp; {</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; user:"superuser",</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; pwd:"superuser@nMhU3x",</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; roles:["root"]</span></div><div><span style="font-size: 12px;">&nbsp; }</span></div><div><span style="font-size: 12px;">)</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><span style="white-space:pre">	</span>参考文档：http://demo.netfoucs.com/xuzheng_java/article/details/42550653</span></div><div><span style="white-space: pre; font-size: 12px;">	</span></div><div><span style="font-size: 12px;">3. mongodb 初次启动时，观察其占用的磁盘空间。发现占用了20G空间，这与mongodb为了提高写性能，</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;与分配数据有关。</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;原因：</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;oplogSize：指定的复制操作日志（OPLOG）的最大大小。mongod创建一个OPLOG的大小基于最大可用</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;空间量。对于64位系统，OPLOG通常是5％的可用磁盘空间。一旦mongod第一次创建OPLOG，改变oplog</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;Size将不会影响OPLOG的大小。</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;我把oplogSize配置为1G发现，初始化时生成了一个local.1，大小为1G。</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;</span></div><div><span style="font-size: 12px;">4. 针对mongodb的warnning的系统级别的优化：</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; &nbsp;&nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;第一步：</span></div><div><span style="font-size: 12px;">&nbsp; 使用root用户权限登录：</span></div><div><span style="font-size: 12px;">&nbsp;&nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;echo "never" &gt; /sys/kernel/mm/transparent_hugepage/enabled</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;echo "never" &gt; /sys/kernel/mm/transparent_hugepage/defrag</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;第二步：</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;使用root用户权限登录：</span></div><div><span style="font-size: 12px;">&nbsp;&nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;vim /etc/profile</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;添加以下命令：</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">&nbsp; ulimit -f unlimited</span></div><div><span style="font-size: 12px;">&nbsp; ulimit -t unlimited</span></div><div><span style="font-size: 12px;">&nbsp; ulimit -v unlimited</span></div><div><span style="font-size: 12px;">&nbsp; ulimit -n 64000</span></div><div><span style="font-size: 12px;">&nbsp; ulimit -m unlimited</span></div><div><span style="font-size: 12px;">&nbsp; ulimit -u 32000</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">5. &nbsp;在做mongodb主从复制时，在没有开启--auth模式时，运行正常。</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; 然后，开启主库 --auth模式，</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; 发现从库遇到验证问题，数据不能同步成功。</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; 在这种情况下，做实验失败，尚末解决。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">6. &nbsp;发现mongodb初始化时，data占用物理空间是23G;然后插入1KW条数据后，占用空间是29G；</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; 若插入2KW条数据，占用空间是30G<span style="white-space:pre">	</span></span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; 30601 LBSUser &nbsp; 20 &nbsp; 0 56.9g(VIRT) 2.8g(RES) 2.4g S &nbsp;0.0 &nbsp;9.0 &nbsp; 0:14.47 mongod&nbsp;</span></div><div><span style="font-size: 12px;">&nbsp;&nbsp;</span></div><div><span style="font-size: 12px;">&nbsp;&nbsp;</span></div><div><span style="font-size: 12px;">7. &nbsp; mongodb主从复制的配置文件见：</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; &nbsp;mongodb-master-slave.tar</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; &nbsp;配置文件的说明：</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; &nbsp;参考：http://www.it165.net/database/html/201402/5303.html</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">8. &nbsp; mongodb副本集的配置文件见：</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; &nbsp;mongodb-replset.tar.gz<span style="white-space:pre">	  </span>&nbsp;</span><a title="配置文件" href="/Files/changshoumeng/mongodb-replset.tar.zip">配置文件<br /></a></div><div><span style="font-size: 12px;">&nbsp; &nbsp;</span>mongodb-master-slave.tar.zip&nbsp;<a title="配置文件" href="/Files/changshoumeng/mongodb-master-slave.tar.zip" style="font-size: 12px;">配置文件</a></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp;&nbsp;</span></div><img src ="http://www.cppblog.com/changshoumeng/aggbug/210327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/changshoumeng/" target="_blank">长寿梦</a> 2015-04-13 17:27 <a href="http://www.cppblog.com/changshoumeng/archive/2015/04/13/210327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对数据库索引的一点总结</title><link>http://www.cppblog.com/changshoumeng/archive/2015/02/11/209789.html</link><dc:creator>长寿梦</dc:creator><author>长寿梦</author><pubDate>Wed, 11 Feb 2015 03:16:00 GMT</pubDate><guid>http://www.cppblog.com/changshoumeng/archive/2015/02/11/209789.html</guid><wfw:comment>http://www.cppblog.com/changshoumeng/comments/209789.html</wfw:comment><comments>http://www.cppblog.com/changshoumeng/archive/2015/02/11/209789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/changshoumeng/comments/commentRss/209789.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/changshoumeng/services/trackbacks/209789.html</trackback:ping><description><![CDATA[<div></div><div></div><div>问题：mysql 多列索引的最左前缀&nbsp;</div><div>参考：http://blog.sina.com.cn/s/blog_4deb16580100i8v2.html</div><div>结论：索引文件是根据最左边的一列进行排序的，然后按照二分查找法查找的。</div><div></div><div></div><div>问题：索引的类型：普通索引、唯一性索引、主键、全文索引</div><div>参考：http://opq149766320.iteye.com/blog/561183</div><div>结论：</div><div></div><div></div><div></div><div>问题： MySQL Hash索引和B-Tree索引的区别</div><div>参考：http://database.51cto.com/art/201010/229525.htm</div><div>结论：映射规则导致的缺点、冲突导致的缺点</div><div>&nbsp; &nbsp; &nbsp;</div><img src ="http://www.cppblog.com/changshoumeng/aggbug/209789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/changshoumeng/" target="_blank">长寿梦</a> 2015-02-11 11:16 <a href="http://www.cppblog.com/changshoumeng/archive/2015/02/11/209789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>im的难点</title><link>http://www.cppblog.com/changshoumeng/archive/2015/02/10/209778.html</link><dc:creator>长寿梦</dc:creator><author>长寿梦</author><pubDate>Tue, 10 Feb 2015 07:31:00 GMT</pubDate><guid>http://www.cppblog.com/changshoumeng/archive/2015/02/10/209778.html</guid><wfw:comment>http://www.cppblog.com/changshoumeng/comments/209778.html</wfw:comment><comments>http://www.cppblog.com/changshoumeng/archive/2015/02/10/209778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/changshoumeng/comments/commentRss/209778.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/changshoumeng/services/trackbacks/209778.html</trackback:ping><description><![CDATA[im的架构，不是难在消息的转发，而是难在<br />1.用户状态的维护<br />2.用户社交网络的构造<img src ="http://www.cppblog.com/changshoumeng/aggbug/209778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/changshoumeng/" target="_blank">长寿梦</a> 2015-02-10 15:31 <a href="http://www.cppblog.com/changshoumeng/archive/2015/02/10/209778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>将MYSQL多库表的数据迁移到REDIS的SHELL脚本</title><link>http://www.cppblog.com/changshoumeng/archive/2014/07/18/207691.html</link><dc:creator>长寿梦</dc:creator><author>长寿梦</author><pubDate>Fri, 18 Jul 2014 09:29:00 GMT</pubDate><guid>http://www.cppblog.com/changshoumeng/archive/2014/07/18/207691.html</guid><wfw:comment>http://www.cppblog.com/changshoumeng/comments/207691.html</wfw:comment><comments>http://www.cppblog.com/changshoumeng/archive/2014/07/18/207691.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/changshoumeng/comments/commentRss/207691.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/changshoumeng/services/trackbacks/207691.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #008000">#</span><span style="color: #008000">!/bin/sh</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />DBFILE</span><span style="color: #000000">=./</span><span style="color: #000000">migratedata2redis</span><span style="color: #000000">.</span><span style="color: #000000">sql<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">for</span><span style="color: #000000">((nDBIndex</span><span style="color: #000000">=</span><span style="color: #800000">0</span><span style="color: #000000">;nDBIndex</span><span style="color: #000000">&lt;</span><span style="color: #800000">4</span><span style="color: #000000">;nDBIndex</span><span style="color: #000000">++</span><span style="color: #000000">))<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">do</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;[&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">f&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000">&nbsp;]<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />then<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rm&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">rf&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />fi<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">((nTBIndex</span><span style="color: #000000">=</span><span style="color: #800000">0</span><span style="color: #000000">;nTBIndex</span><span style="color: #000000">&lt;</span><span style="color: #800000">64</span><span style="color: #000000">;nTBIndex</span><span style="color: #000000">++</span><span style="color: #000000">))<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">do</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cat&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #0000ff">EOF</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;concat(&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">*4\r\n\$4\r\nzadd\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_key)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_key</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_score)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_score</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_value)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_value</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FROM(<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;FtoID&nbsp;</span><span style="color: #000000">,</span><span style="color: #000000">FmsgID</span><span style="color: #000000">,</span><span style="color: #000000">FdbIndex</span><span style="color: #000000">,</span><span style="color: #000000">FtableIndex</span><span style="color: #000000">,</span><span style="color: #000000">FmsgTimestamp</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">offlinemsg_</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000">,</span><span style="color: #000000">FtoID)&nbsp;as&nbsp;redis_key</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FmsgTimestamp&nbsp;as&nbsp;redis_score</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(FmsgID</span><span style="color: #000000">,</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">_</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FdbIndex</span><span style="color: #000000">,</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">_</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;FtableIndex)&nbsp;as&nbsp;redis_value<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;db_im_user_msg_</span><span style="color: #800080">$nDBIndex</span><span style="color: #000000">.</span><span style="color: #000000">t_im_user_msgidlist_</span><span style="color: #800080">$nTBIndex</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AS&nbsp;T;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">EOF</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />echo&nbsp;</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">begin&nbsp;migrate&nbsp;data&nbsp;to&nbsp;redis,use&nbsp;$DBFILE&nbsp;..</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />mysql&nbsp;db_im_user_msg_</span><span style="color: #800080">$nDBIndex</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">skip</span><span style="color: #000000">-</span><span style="color: #000000">column</span><span style="color: #000000">-</span><span style="color: #000000">names&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">raw&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;redis</span><span style="color: #000000">-</span><span style="color: #000000">cli&nbsp;</span><span style="color: #000000">--</span><span style="color: #0000ff">pipe</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />echo&nbsp;</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">migrate&nbsp;data&nbsp;to&nbsp;redis,end</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />done</span></div><br /><br />这个脚本是将以多库多表存储在MYSQL的数据迁移到REDIS的一个库里。<br /><br />但是假如，需求是将这些数据安全UID的规则迁移到REDIS的不同的库里呢，怎么办？<br /><br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/bin/sh</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />DBFILE</span><span style="color: #000000">=./</span><span style="color: #000000">migratedata2redis</span><span style="color: #000000">.</span><span style="color: #000000">sql<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />function&nbsp;select_data()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;DBINDEX</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #800000">1</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;TBINDEX</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #800000">2</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;MOINDEX</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #800000">3</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">echo&nbsp;"select_data&nbsp;$DBINDEX&nbsp;$TBINDEX&nbsp;$MOINDEX"</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;(<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cat&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #0000ff">EOF</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;concat(&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">*4\r\n\$4\r\nzadd\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_key)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_key</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_score)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_score</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_value)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_value</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FROM(<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;FtoID&nbsp;</span><span style="color: #000000">,</span><span style="color: #000000">FmsgID</span><span style="color: #000000">,</span><span style="color: #000000">FdbIndex</span><span style="color: #000000">,</span><span style="color: #000000">FtableIndex</span><span style="color: #000000">,</span><span style="color: #000000">FmsgTimestamp</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">offlinemsg_</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000">,</span><span style="color: #000000">FtoID)&nbsp;as&nbsp;redis_key</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FmsgTimestamp&nbsp;as&nbsp;redis_score</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(FmsgID)&nbsp;as&nbsp;redis_value<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;db_im_user_msg_</span><span style="color: #800080">$DBINDEX</span><span style="color: #000000">.</span><span style="color: #000000">t_im_user_msgidlist_</span><span style="color: #800080">$TBINDEX</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;FtoID</span><span style="color: #000000">%</span><span style="color: #800000">4</span><span style="color: #000000">=</span><span style="color: #800080">$MOINDEX</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AS&nbsp;T1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;concat(&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">*3\r\n\$3\r\nset\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_key)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_key</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\$</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">LENGTH</span><span style="color: #000000">(redis_value)</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r\n</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis_value</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000; font-weight: bold">\r</span><span style="color: #000000; font-weight: bold">'</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FROM(<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;FtoID&nbsp;</span><span style="color: #000000">,</span><span style="color: #000000">FmsgID</span><span style="color: #000000">,</span><span style="color: #000000">FdbIndex</span><span style="color: #000000">,</span><span style="color: #000000">FtableIndex</span><span style="color: #000000">,</span><span style="color: #000000">FmsgTimestamp</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">msg_</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000">,</span><span style="color: #000000">FmsgID)&nbsp;as&nbsp;redis_key</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FmsgTimestamp&nbsp;as&nbsp;redis_score</span><span style="color: #000000">,</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(FmsgID</span><span style="color: #000000">,</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">_</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FdbIndex</span><span style="color: #000000">,</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">_</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;FtableIndex)&nbsp;as&nbsp;redis_value<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;db_im_user_msg_</span><span style="color: #800080">$DBINDEX</span><span style="color: #000000">.</span><span style="color: #000000">t_im_user_msgidlist_</span><span style="color: #800080">$TBINDEX</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;FtoID</span><span style="color: #000000">%</span><span style="color: #800000">4</span><span style="color: #000000">=</span><span style="color: #800080">$MOINDEX</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AS&nbsp;T2;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">EOF</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />function&nbsp;traverse_tb()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;DBINDEX</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #800000">1</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;MOINDEX</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #800000">2</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">echo&nbsp;"traverse_tb&nbsp;$DBINDEX&nbsp;$MOINDEX"</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">((nTBIndex</span><span style="color: #000000">=</span><span style="color: #800000">0</span><span style="color: #000000">;nTBIndex</span><span style="color: #000000">&lt;</span><span style="color: #800000">64</span><span style="color: #000000">;nTBIndex</span><span style="color: #000000">++</span><span style="color: #000000">))<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">do</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select_data&nbsp;</span><span style="color: #800080">$DBINDEX</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$nTBIndex</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$MOINDEX</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;done<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />function&nbsp;traverse_md()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;DBINDEX</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #800000">1</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"traverse_md&nbsp;$DBINDEX"</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">((nModNum</span><span style="color: #000000">=</span><span style="color: #800000">0</span><span style="color: #000000">;nModNum</span><span style="color: #000000">&lt;</span><span style="color: #800000">4</span><span style="color: #000000">;nModNum</span><span style="color: #000000">++</span><span style="color: #000000">))<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">do</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">f&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000">&nbsp;]&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;&nbsp;rm&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">rf&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;traverse_tb&nbsp;</span><span style="color: #800080">$DBINDEX</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$nModNum</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">&nbsp;mysql&nbsp;db_im_user_msg_$DBINDEX&nbsp;--skip-column-names&nbsp;--raw&nbsp;&lt;&nbsp;$DBFILE&nbsp;|&nbsp;redis-cli&nbsp;--pipe&nbsp;-n&nbsp;$nModNum&nbsp;</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&nbsp;db_im_user_msg_</span><span style="color: #800080">$DBINDEX</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">skip</span><span style="color: #000000">-</span><span style="color: #000000">column</span><span style="color: #000000">-</span><span style="color: #000000">names&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">raw&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$DBFILE</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;redis</span><span style="color: #000000">-</span><span style="color: #000000">cli&nbsp;</span><span style="color: #000000">--</span><span style="color: #0000ff">pipe</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">n&nbsp;</span><span style="color: #800080">$nModNum</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"migrate&nbsp;data&nbsp;to&nbsp;redis,end"</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;done<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />function&nbsp;traverse_db()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">((nDBIndex</span><span style="color: #000000">=</span><span style="color: #800000">0</span><span style="color: #000000">;nDBIndex</span><span style="color: #000000">&lt;</span><span style="color: #800000">4</span><span style="color: #000000">;nDBIndex</span><span style="color: #000000">++</span><span style="color: #000000">))<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">do</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">e&nbsp;</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">\n-------traverse_db&nbsp;$nDBIndex--------------</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;traverse_md&nbsp;</span><span style="color: #800080">$nDBIndex</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;done<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />function&nbsp;main()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;traverse_db<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />main<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span></div>初步思路是：先把数据全量迁移到一个库，然后keys * 到指定的记录，再一个一个的move一遍。<br /><br /><br /><br /><img src ="http://www.cppblog.com/changshoumeng/aggbug/207691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/changshoumeng/" target="_blank">长寿梦</a> 2014-07-18 17:29 <a href="http://www.cppblog.com/changshoumeng/archive/2014/07/18/207691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取分库分表的总记录数目，mysql存储过程与SHELL脚本实现</title><link>http://www.cppblog.com/changshoumeng/archive/2014/07/15/207655.html</link><dc:creator>长寿梦</dc:creator><author>长寿梦</author><pubDate>Tue, 15 Jul 2014 11:25:00 GMT</pubDate><guid>http://www.cppblog.com/changshoumeng/archive/2014/07/15/207655.html</guid><wfw:comment>http://www.cppblog.com/changshoumeng/comments/207655.html</wfw:comment><comments>http://www.cppblog.com/changshoumeng/archive/2014/07/15/207655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/changshoumeng/comments/commentRss/207655.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/changshoumeng/services/trackbacks/207655.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">DROP</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">IF</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">EXISTS</span><span style="color: #000000">&nbsp;&nbsp;sp_getmsgtotal;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />DELIMITER</span><span style="color: #808080">//</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;sp_getmsgtotal()<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">BEGIN</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;DBNAME&nbsp;</span><span style="color: #000000; font-weight: bold">varchar</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">64</span><span style="color: #000000">)&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;TBNAME&nbsp;</span><span style="color: #000000; font-weight: bold">varchar</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">64</span><span style="color: #000000">);<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">integer</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">0</span><span style="color: #000000">&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;dbindex&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">integer</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">0</span><span style="color: #000000">&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;tbindex&nbsp;&nbsp;</span><span style="color: #000000; font-weight: bold">integer</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">0</span><span style="color: #000000">&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;loop1:</span><span style="color: #0000ff">WHILE</span><span style="color: #000000">&nbsp;dbindex</span><span style="color: #808080">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">8</span><span style="color: #000000">&nbsp;DO<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;DBNAME</span><span style="color: #808080">=</span><span style="color: #000000">concat("db_im_msg_record_"&nbsp;,&nbsp;dbindex);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;tbindex&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">0</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop2:</span><span style="color: #0000ff">WHILE</span><span style="color: #000000">&nbsp;tbindex</span><span style="color: #808080">&lt;</span><span style="color: #800000; font-weight: bold">32</span><span style="color: #000000">&nbsp;DO<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;TBNAME</span><span style="color: #808080">=</span><span style="color: #000000">concat("t_im_msg_",tbindex);&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@SQL</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;concat("</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">COUNT</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@num</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;",DBNAME,".",TBNAME,";");<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@SQL</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">prepare</span><span style="color: #000000">&nbsp;stmt_1&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@SQL</span><span style="color: #000000">&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">execute</span><span style="color: #000000">&nbsp;stmt_1&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">deallocate</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">prepare</span><span style="color: #000000">&nbsp;stmt_1&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;total&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;total&nbsp;</span><span style="color: #808080">+</span><span style="color: #008000">@num</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;tbindex&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;tbindex</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">WHILE</span><span style="color: #000000">&nbsp;loop2;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;dbindex</span><span style="color: #808080">=</span><span style="color: #000000">dbindex</span><span style="color: #808080">+</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">WHILE</span><span style="color: #000000">&nbsp;loop1;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;total&nbsp;;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">END</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #808080">//</span></div><br />但是存储过程，面临着 这样的问题：<br />Thread stack overrun:&nbsp; 10368 bytes used of a 131072 byte stack, and 128000 bytes needed.&nbsp; <br />需要重启mysqld。<br />麻烦。<br /><br />换一种SHELL脚本实现 <br /><br /><br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/bin/bash</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">MYSQL</span><span style="color: #000000">=/</span><span style="color: #000000">usr</span><span style="color: #000000">/</span><span style="color: #000000">local</span><span style="color: #000000">/</span><span style="color: #008080">mysql</span><span style="color: #000000">/</span><span style="color: #000000">bin</span><span style="color: #000000">/</span><span style="color: #008080">mysql</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">#</span><span style="color: #008000">SQLOPT="&nbsp;-u$USER&nbsp;-p$PASS&nbsp;-S/tmp/mysql-new.sock&nbsp;$@"</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">SQLOPT</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">-h192.168.1.10&nbsp;-uusername&nbsp;-ppassword</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />RESULTFILE</span><span style="color: #000000">=./</span><span style="color: #000000">result</span><span style="color: #000000">.</span><span style="color: #000000">txt<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;mysql_opt()&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBNAME</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #000000">1</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQLSTR</span><span style="color: #000000">=</span><span style="color: #000000">$</span><span style="color: #000000">2</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080">$MYSQL</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$SQLOPT</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;EOF<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">use</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$DBNAME</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;names&nbsp;utf8;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080">$SQLSTR</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />EOF<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;get_count()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">((nDBIndex</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;nDBIndex</span><span style="color: #000000">&lt;</span><span style="color: #000000">8</span><span style="color: #000000">;nDBIndex</span><span style="color: #000000">++</span><span style="color: #000000">))<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">do</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBNAME</span><span style="color: #000000">=</span><span style="color: #000000">db_im_msg_record_</span><span style="color: #800080">$nDBIndex</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">DBNAME=db_im_user_msg_$nDBIndex</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">((nTBIndex</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;nTBIndex</span><span style="color: #000000">&lt;</span><span style="color: #000000">1</span><span style="color: #000000">;nTBIndex</span><span style="color: #000000">++</span><span style="color: #000000">))<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">do</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TBNAME</span><span style="color: #000000">=</span><span style="color: #000000">t_im_msg_</span><span style="color: #800080">$nTBIndex</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">TBNAME=t_im_user_msgidlist_$nTBIndex</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RESULT</span><span style="color: #000000">=</span><span style="color: #000000">`mysql_opt&nbsp;</span><span style="color: #800080">$DBNAME</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">select&nbsp;count(*)&nbsp;from&nbsp;$TBNAME;</span><span style="color: #000000">"</span><span style="color: #000000">`<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">echo</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">$RESULT&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">echo</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$RESULT</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$RESULTFILE</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">done</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">done</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;compute_total()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">echo</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">begin<img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;awk&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">BEGIN{sum=0}{print&nbsp;$2;sum+=$2;}END{print&nbsp;sum}&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">$RESULTFILE</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">echo</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">end..</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;main()<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">f&nbsp;</span><span style="color: #800080">$RESULTFILE</span><span style="color: #000000">&nbsp;]&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;rm&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">rf&nbsp;</span><span style="color: #800080">$RESULTFILE</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_count<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compute_total<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />}<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />main</span></div><br /><br /><br /><br /> <img src ="http://www.cppblog.com/changshoumeng/aggbug/207655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/changshoumeng/" target="_blank">长寿梦</a> 2014-07-15 19:25 <a href="http://www.cppblog.com/changshoumeng/archive/2014/07/15/207655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>是否选择mongodb替换mysql</title><link>http://www.cppblog.com/changshoumeng/archive/2013/08/30/202863.html</link><dc:creator>长寿梦</dc:creator><author>长寿梦</author><pubDate>Fri, 30 Aug 2013 01:42:00 GMT</pubDate><guid>http://www.cppblog.com/changshoumeng/archive/2013/08/30/202863.html</guid><wfw:comment>http://www.cppblog.com/changshoumeng/comments/202863.html</wfw:comment><comments>http://www.cppblog.com/changshoumeng/archive/2013/08/30/202863.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/changshoumeng/comments/commentRss/202863.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/changshoumeng/services/trackbacks/202863.html</trackback:ping><description><![CDATA[<p>为什么我们放弃使用mongodb<br /><a href="http://dank.iteye.com/blog/1069050">http://dank.iteye.com/blog/1069050</a></p>
<p>mysql与mongodb的应用分析<br /><a href="http://dank.iteye.com/blog/1062025">http://dank.iteye.com/blog/1062025</a></p><img src ="http://www.cppblog.com/changshoumeng/aggbug/202863.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/changshoumeng/" target="_blank">长寿梦</a> 2013-08-30 09:42 <a href="http://www.cppblog.com/changshoumeng/archive/2013/08/30/202863.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>