Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql中优化此数据的存储?_Mysql - Fatal编程技术网

如何在mysql中优化此数据的存储?

如何在mysql中优化此数据的存储?,mysql,Mysql,让我们看看这个数据库结构 Iterations id (primary key) start (timestamp) end (timestamp nullable) Items id (primary key) title (text) foreign_id (integer) location (point nullable) some other text fields Iteration_items iteration_id (f

让我们看看这个数据库结构

Iterations
    id (primary key)
    start (timestamp)
    end (timestamp nullable)

Items
  id (primary key)
  title (text)
  foreign_id (integer)
  location (point nullable)
  some other text fields

Iteration_items
     iteration_id (foreign key to iterations(id))
     item_id (foreign key to items(id))
每小时

1. Create new record in `iterations` with `start` equals to now
2. Do some processing and store about 5000 records in `items` table (plus 5000 records in `iteration_items`), so every `iteration` contains about 5000 items.
3. After it is done set `end` to now for latest `iteration`
问题:items表中的每次迭代都会占用大约100Mb的磁盘数据,我无法以某种方式压缩这些数据,因为其中有一些文本

可以有多个副本:

1. Iteration 34 contains item with foreign id 837435.
2. Iteration 35 contains item with foreign id 837453
3. ...
4. Iteration 42 DOES not contain item with foreign id 837453
可以在迭代之间更改具有外部id 837435的项中的数据

例如:

   iteration 34
       point(1.1,2.2)
       title 'some example text'
   iteration 35
       point(1.1, 2.3)
       title 'another example text'
我需要存储这些数据,以便以后可以进行比较


如何处理不断增长的数据库?

可以说,拥有一个快速增长的数据库是没有问题的,尤其是当数据库结构健全时,就像您的数据库一样。另一方面,当您说存储这些数据以便以后比较时,您可能需要一个分析数据库来补充MySql数据库。这种类型的软件旨在存储大量数据,而不占用大量磁盘空间并以闪电般的速度进行查询

也许你应该考虑只将最新数据存储在MySQL数据库中,并定期与数据仓库同步。这样的规模可能会大得多

看看这篇文章,它有一些很好的建议:

此外,以下是一些您可以考虑的个人建议:

Infobright:MySql的数据仓库解决方案。免费社区版,只允许插入数据,不允许修改。与MySql完美集成

PostgreSQL:不是典型的数据仓库,但仍然可以很好地处理大量数据,并将性能保持在相当高的水平

Vertica:惠普的解决方案,有免费的社区版。超级快速且功能强大,但很难与我目前工作的PHP之类的东西集成