· 7 years ago · Sep 07, 2018, 10:32 PM
1Tables with 30mln entries are slow. Optimize MySQL or switch to mongodb?
2CREATE TABLE IF NOT EXISTS `products` (
3 `id` int(11) NOT NULL auto_increment,
4 `product_title` varchar(1000) NOT NULL,
5 `product_id` varchar(100) NOT NULL,
6 `title` varchar(1000) NOT NULL,
7 `image` varchar(1000) NOT NULL,
8 `url` varchar(1000) NOT NULL,
9 `price` varchar(100) NOT NULL,
10 `reviews` int(11) NOT NULL,
11 `stars` float NOT NULL,
12 `BrowseNodeID` int(11) NOT NULL,
13 `status` varchar(100) NOT NULL,
14 `started_at` int(15) NOT NULL,
15 PRIMARY KEY (`id`),
16 KEY `id_index` (`BrowseNodeID`),
17 KEY `status_index` (`status`),
18 KEY `started_index` (`started_at`),
19 KEY `id_ind` (`id`)
20) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13743335 ;
21
22
23CREATE TABLE IF NOT EXISTS `reviews` (
24 `id` int(11) NOT NULL auto_increment,
25 `product_id` varchar(100) NOT NULL,
26 `product_title` varchar(1000) NOT NULL,
27 `review_title` varchar(1000) NOT NULL,
28 `content` varchar(5000) NOT NULL,
29 `author` varchar(255) NOT NULL,
30 `author_profile` varchar(1000) NOT NULL,
31 `stars` float NOT NULL,
32 `owner` varchar(100) NOT NULL,
33 PRIMARY KEY (`id`),
34 KEY `product_id` (`product_id`),
35 KEY `id_index` (`product_id`)
36) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=48129737 ;
37
38set-variable = query_cache_size=1512M
39set-variable = thread_cache_size=8
40thread_concurrency = 8
41skip-innodb
42low-priority-updates
43delay-key-write=ALL
44
45key_buffer_size = 100M
46max_allowed_packet = 1M
47#table_open_cache = 4048
48sort_buffer_size = 2M
49read_buffer_size = 2M
50read_rnd_buffer_size = 8M
51myisam_sort_buffer_size = 50M
52set-variable = table_cache=256
53set-variable = query_cache_limit=1024M
54set-variable = query_cache_size=1024M