Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Frage zu Optimierungsmöglichkeiten

2 views
Skip to first unread message

Holger Veltrup

unread,
Mar 31, 2011, 10:42:08 AM3/31/11
to
Hey,

ich habe eine Tabelle 'Content'
mysql> show create table Content;
CREATE TABLE `Content` (
`id` bigint(20) NOT NULL,
`searchKey` varchar(255) DEFAULT NULL,
KEY `Content_id` (`id`),
KEY `Content_searchKey` (`searchKey`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

(Die Tabelle hat eigentlich noch mehr Spalten. Die hab ich aber weg
gelassen, da sie für mein Problem nicht relevant sind)

In dieser Tabelle gibt es ca. 500000 Einträge.
mysql> SELECT count(*) from Content;
+----------+
| count(*) |
+----------+
| 492632 |
+----------+

Ca. 50000 Einträge haben in der 'searchKey' Spalte den Wert 'state';

Mein Problem ist das folgende Abfrage:
mysql> SELECT count(id) FROM Content WHERE searchKey = 'state';
+-------------------+
| count(id) |
+-------------------+
| 49220 |
+-------------------+
1 row in set (3.05 sec)

viel zu lange dauert (ca. 3 Sekunden).

Mir ist klar das es mit 'count(*)' schneller geht. Ich habe mein
Statement auf das obige reduziert um das hier etwas einfacher darstellen
zu können.

Der Rechner hat 4GB RAM und der Swap-Bereich ist ungenutzt.

Nehmt bitte Hardware und SQL-Statement als gegeben hin.

Die Frage ist nun an welchen MySQL-Konfigurationen sollte ich drehen um
das zu beschleunigen.
Folgende Settings hab ich bereits ausprobiert:

key_buffer_size = 256M
innodb_buffer_pool_size = 1G
innodb_additional_mem_pool_size = 20M

Bin dankbar für jeden Tip.


Gruß Holger


0 new messages