質問編集履歴

2

検証用SQL追加

2018/10/25 03:38

投稿

kunai
kunai

スコア5405

test CHANGED
File without changes
test CHANGED
@@ -371,3 +371,159 @@
371
371
  ただ、こちらの場合は処理にかなり時間がかかってしまい、とても残念な感じです。
372
372
 
373
373
  なんとか高速に正しい値が処理出来るようにならないでしょうか。
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+ ちなみに、上記に記載したテーブル構造・データは下記のSQLで構築出来ますので、是非ご検証いただけると助かります。
382
+
383
+ ※実際には、件数が万件単位になっている場合に処理時間が体感出来るのですが。。
384
+
385
+
386
+
387
+ ```SQL
388
+
389
+ --
390
+
391
+ -- Table structure for table `buy`
392
+
393
+ --
394
+
395
+
396
+
397
+ DROP TABLE IF EXISTS `buy`;
398
+
399
+ CREATE TABLE `buy` (
400
+
401
+ `id` int(11) NOT NULL AUTO_INCREMENT,
402
+
403
+ `product_id` int(11) NOT NULL,
404
+
405
+ `qty` int(11) DEFAULT NULL,
406
+
407
+ `is_back` tinyint(4) DEFAULT '0',
408
+
409
+ `datetime` datetime DEFAULT NULL,
410
+
411
+ PRIMARY KEY (`id`)
412
+
413
+ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
414
+
415
+
416
+
417
+ --
418
+
419
+ -- Dumping data for table `buy`
420
+
421
+ --
422
+
423
+
424
+
425
+ LOCK TABLES `buy` WRITE;
426
+
427
+ /*!40000 ALTER TABLE `buy` DISABLE KEYS */;
428
+
429
+ INSERT INTO `buy` VALUES (1,1,5,0,'2018-10-10 00:00:00'),(2,2,3,0,'2018-10-10 00:00:00'),(3,3,10,0,'2018-10-10 00:00:00'),(4,1,2,1,'2018-10-10 00:00:00'),(5,2,1,1,'2018-10-10 00:00:00'),(6,3,8,1,'2018-10-10 00:00:00'),(7,1,1,0,'2018-10-10 00:00:00');
430
+
431
+ /*!40000 ALTER TABLE `buy` ENABLE KEYS */;
432
+
433
+ UNLOCK TABLES;
434
+
435
+
436
+
437
+ --
438
+
439
+ -- Table structure for table `product`
440
+
441
+ --
442
+
443
+
444
+
445
+ DROP TABLE IF EXISTS `product`;
446
+
447
+ CREATE TABLE `product` (
448
+
449
+ `id` int(11) NOT NULL AUTO_INCREMENT,
450
+
451
+ `name` varchar(45) DEFAULT NULL,
452
+
453
+ `price` int(11) DEFAULT NULL,
454
+
455
+ PRIMARY KEY (`id`)
456
+
457
+ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
458
+
459
+
460
+
461
+ --
462
+
463
+ -- Dumping data for table `product`
464
+
465
+ --
466
+
467
+
468
+
469
+ LOCK TABLES `product` WRITE;
470
+
471
+ /*!40000 ALTER TABLE `product` DISABLE KEYS */;
472
+
473
+ INSERT INTO `product` VALUES (1,'商品1',100),(2,'商品2',200),(3,'商品3',300);
474
+
475
+ /*!40000 ALTER TABLE `product` ENABLE KEYS */;
476
+
477
+ UNLOCK TABLES;
478
+
479
+
480
+
481
+ --
482
+
483
+ -- Table structure for table `sell`
484
+
485
+ --
486
+
487
+
488
+
489
+ DROP TABLE IF EXISTS `sell`;
490
+
491
+ CREATE TABLE `sell` (
492
+
493
+ `id` int(11) NOT NULL AUTO_INCREMENT,
494
+
495
+ `product_id` int(11) NOT NULL,
496
+
497
+ `qty` int(11) DEFAULT NULL,
498
+
499
+ `is_back` tinyint(4) DEFAULT '0',
500
+
501
+ `datetime` datetime DEFAULT NULL,
502
+
503
+ PRIMARY KEY (`id`)
504
+
505
+ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
506
+
507
+
508
+
509
+ --
510
+
511
+ -- Dumping data for table `sell`
512
+
513
+ --
514
+
515
+
516
+
517
+ LOCK TABLES `sell` WRITE;
518
+
519
+ /*!40000 ALTER TABLE `sell` DISABLE KEYS */;
520
+
521
+ INSERT INTO `sell` VALUES (1,1,2,0,'2018-10-10 00:00:00'),(2,2,1,0,'2018-10-10 00:00:00'),(3,3,3,0,'2018-10-10 00:00:00'),(4,1,1,1,'2018-10-10 00:00:00'),(5,2,1,1,'2018-10-10 00:00:00'),(6,3,1,1,'2018-10-10 00:00:00');
522
+
523
+ /*!40000 ALTER TABLE `sell` ENABLE KEYS */;
524
+
525
+ UNLOCK TABLES;
526
+
527
+
528
+
529
+ ```

1

tag追加

2018/10/25 03:38

投稿

kunai
kunai

スコア5405

test CHANGED
File without changes
test CHANGED
File without changes