sách gpt4 ai đã đi

Cấu hình Mysql tối ưu (phân vùng) và cấu hình lập chỉ mục/Hypertable/RAID (cơ sở dữ liệu lớn)

In lại 作者:行者123 更新时间:2023-11-29 03:43:52 35 4
mua khóa gpt4 Nike

tl;rd:

  1. 使用主键对数据库进行分区
  2. 索引大小问题。
  3. 数据库大小每天增长约 1-3 GB
  4. 突袭设置。
  5. 您有使用 Hypertable 的经验吗?

长版:

我刚刚建立/购买了一个家庭服务器:

  • 至强 E3-1245 3,4 HT
  • 32GB 内存
  • 6 个 1.5 TB WD Cavier Black 7200

我将使用服务器主板 INTEL S1200BTL Raid(没钱买 raid Controller )。 http://ark.intel.com/products/53557/Intel-Server-Board-S1200BTL

主板有4个SATA 3GB/s接口(interface)和2个SATA 6GB/s接口(interface)

我还不确定我是否可以在 RAID 10 中设置所有 6 个硬盘,

如果不可能,我认为 4x hdds Raid 10 (MYSQL DB) & 2xhdds Raid 0 for (OS/Mysql Indexes)。

(如果 raid 0 中断,对我来说没问题,我只需要保护数据库)

关于数据库:

它是一个网络爬虫数据库,其中存储域、URL、链接和诸如此类的东西。所以我想我用每个表的主键分区数据库(1-1000000) (1000001-2000000) 等等。

当我在数据库中搜索/插入/选择查询时,我需要扫描 hole 表,因为一些东西可能在 ROW 1 中,而另一些在 ROW 1000000000000 中。

如果我按主键(auto_increment)进行这样的分区,这会使用我所有的 CPU 核心吗?以便它扫描每个并行分区?或者我应该坚持使用一个没有分区的巨大数据库。

数据库将非常大,现在在我的家庭系统上,

Table extract: 25,034,072 Rows
Data 2,058.7 MiB
Index 2,682.8 MiB
Total 4,741.5 MiB

Table Structure:
extract_id bigint(20) unsigned NO PRI NULL auto_increment
url_id bigint(20) NO MUL NULL
extern_link varchar(2083) NO MUL NULL
anchor_text varchar(500) NO NULL
http_status smallint(2) unsigned NO 0

Indexes:
PRIMARY BTREE Yes No extract_id 25034072

link BTREE Yes No url_id
extern_link (400) 25034072

externlink BTREE No No extern_link (400) 1788148


Table urls: 21,889,542 Rows
Data 2,402.3 MiB
Index 3,456.2 MiB
Total 5,858.4 MiB

Table Structure:
url_id bigint(20) NO PRI NULL auto_increment
domain_id bigint(20) NO MUL NULL
url varchar(2083) NO NULL
added date NO NULL
last_crawl date NO NULL
extracted tinyint(2) unsigned NO MUL 0
extern_links smallint(5) unsigned NO 0
crawl_status tinyint(11) unsigned NO 0
status smallint(2) unsigned NO 0


INDEXES:
PRIMARY BTREE Yes No url_id 21889542

domain_id BTREE Yes No domain_id 0
url (330) 21889542

extracted_status BTREE No No extracted 2
status 31

我知道我可以修复 externlink 和链接索引,我只是添加了 externlink 因为我需要查询该字段并且我无法使用链接索引。你看到了吗,我可以在索引上调整什么?我的新系统将有 32 GB,但如果数据库以这种速度增长,我将在几个星期/几个月内使用 90% 的 RAM。

压缩索引有帮助吗? (性能下降如何?)

其他重要的表都在 500MB 以下。

Only the URL Source table is huge: 48.6 GiB 
Structure:

url_id BIGINT
pagesource mediumblob data is packed with gzip high compression

Index is only on url_id (unique).

当我提取了我需要的所有内容后,可以从该表中删除数据。

您有使用Hypertables的经验吗? http://hypertable.org/ <= Googles Bigtables。如果我转向 Hypertables,这是否有助于提高性能(提取数据/搜索/插入/选择和数据库大小)。我在页面上阅读,但我仍然有些无能为力。因为你不能直接比较 MYSQL 和 Hypertables。我会尽快试用,必须先阅读文档。

我需要的是适合我的设置的解决方案,因为我没有钱用于任何其他硬件设置。

感谢您的帮助。

1 Câu trả lời

Hypertable 是抓取数据库的绝佳选择。 Hypertable 是一个开源、高性能、可扩展的数据库,仿照 Google 的 Bigtable。 Google 专门为其抓取数据库开发了 Bigtable。我建议阅读 Bigtable paper因为它使用爬网数据库作为运行示例。

关于mysql - 最佳 Mysql 配置(分区)和索引/Hypertable/RAID 配置(大数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369689/

35 4 0
Bài viết được đề xuất: mysql - 从 Excel 工作表导入数据库表
Bài viết được đề xuất: mysql 选择 SET 分隔符
Bài viết được đề xuất: 当 SELECT 中存在多个字段时,mysql ORDER BY 不使用索引
Bài viết được đề xuất: javascript - 如何避免普通文件中的 key ?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com