2012-05-30 7 views
6

Akşam,30 Milyon Satır

Ben hırpalanmış, 15 yaşındaki veri içe uzun süreç boyunca gidiyorum, salt okunur MySQL içine veri biçimini ondan biraz daha küçük istatistiki tablolar oluşturmak için .

Ben yerleşik büyük tablo

önce olduğu (Sanırım) 32 milyon satır, ama o büyük olsun beklemiyorduk ve gerçekten MySQL zorlanıyordu.

surname name year rel bco bplace rco rplace 
Jones  David 1812 head Lond Soho  Shop Shewsbury 

Yani, küçük ints ve varchars:

tablo aşağıdaki gibi görünecektir.

mümkün olduğunca çabuk workas bu almak konusunda herkes tavsiyelerde Olabilir? Yardımcıların herhangi birinde dizinler yardımcı olur, yoksa sadece sorguları yavaşlatır mı? Her bir sütundaki verilerin büyük

defalarca yinelenir. Bazı alanlar yaklaşık 100 farklı olası değerden daha fazla değildir. Ben tabloyu sorgulama edilecektir

ana sütunlar şunlardır: soyadı, ad, rco, rplace. Bir sütun üzerinde

+2

Dizinler, veri alımını hızlandırır ve veri eklemeyi yavaşlatır. Genel olarak konuşursak, çok iyi bir şeydir: Tabloyu sorgulayabileceğiniz sütunların her biri için bunları oluşturmanızı öneririm. – eggyal

+3

Modern bir RDBMS için 30 milyon satır çok fazla değil. Tabii ki, dizin içermeyen tablo taramaları yapmadıkça. –

+0

Yorumunuz için teşekkürler. Sanırım 32 milimdeki sorunlardan biriydi. satır tablosu Satır eklemek çökmelere neden oldu. –

cevap

5

INDEX arama hızlandırır. Sorgularda daha sık kullandığınız INDEX sütunları deneyin. Bahsettiğiniz gibi, surname, name, rco, rplace sütunlarını kullanıyor olmalısınız. Onları indekslemeni öneririm. tablo 32 milyon kayıtları olduğundan beklemeye değer olduğunu ancak

, indeksleme bazen alacaktı.

+0

Teşekkürler. Şimdi masayı yapıyorum. Bu yüzden, indeksleri c üzerindeki karşıt olarak oluşturabilirim. 30 mil satır. –

+1

@KohjahBreese: Her iki yolunu da kontrol edin, 30 milyon satırdaki * bir kez * indeksini oluşturmanın endeksi aşamalı olarak oluşturmaktan daha hızlı olduğunu görebilirsiniz. –