最近在设计五分钟股票交易数据的小程序,发现如果将所有股票的数据都放在一张数据表中,会使得MYSQL的查询效率大大降低。
比如:使用SELECT COUNT(*) FROM STK.这样的一句代码执行了几分钟还没有结果,(实际上总共是五千万条记录左右)
因此考虑将股票数据分库分表存放。(当然能这种方法会导致在查找具体股票信息的时候稍微麻烦一些,但是效率应该会提升不少)
首先分库:构建mystkSH、mystkSZ、mystkHK、mystkOT分别存放上海、深证、香港和其他的交易数据。
其次分表:对于每只股票在指定的数据库中单独建一张表存放。比如在mystkSH数据库中新建SH000001表来存放上证 指数的交易数据。
当然啦,表不可能手动创建的嘛,不然几千只股票是会死人的,所以考虑在每个数据库中存放一张模板表,然后要创建每一只股票表格的时候只需要在VB.net里面执行代码即可:
Try
If myConn.State <> Connection