forked from mikeckennedy/talk-python-transcripts
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path366-postgres.vtt
6005 lines (3003 loc) · 118 KB
/
366-postgres.vtt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
WEBVTT
00:00:00.000 --> 00:00:03.240
- Hello YouTube, hello Michael.
00:00:03.240 --> 00:00:05.040
- Hello Michael.
00:00:05.040 --> 00:00:08.280
- It's great to have you here.
00:00:08.280 --> 00:00:10.640
We're gonna talk databases, it's gonna be so fun.
00:00:10.640 --> 00:00:12.080
- We are, thank you for having me,
00:00:12.080 --> 00:00:13.440
I'm looking forward to it.
00:00:13.440 --> 00:00:14.280
- Absolutely.
00:00:14.280 --> 00:00:15.800
All right, folks out there in the audience,
00:00:15.800 --> 00:00:18.740
feel free to ask questions if you're watching live.
00:00:18.740 --> 00:00:19.720
Thanks for watching the replay
00:00:19.720 --> 00:00:21.440
if you're watching afterwards.
00:00:21.440 --> 00:00:23.480
And with that, let's kick it off.
00:00:23.480 --> 00:00:25.380
Michael, welcome to Talk Python to Me.
00:00:25.380 --> 00:00:28.640
- Thank you, thank you for having me.
00:00:28.640 --> 00:00:29.960
It's a pleasure.
00:00:29.960 --> 00:00:31.200
- Yeah, it's a pleasure to have you.
00:00:31.200 --> 00:00:35.080
I'm honestly pretty psyched to talk about database stuff.
00:00:35.080 --> 00:00:39.240
I feel like databases are these magical centerpieces
00:00:39.240 --> 00:00:41.400
of so many applications,
00:00:41.400 --> 00:00:46.400
and yet, yet they are so unoptimized in many situations
00:00:46.400 --> 00:00:49.600
that if you could just sprinkle a few of these ideas
00:00:49.600 --> 00:00:51.400
that we're gonna talk about on them,
00:00:51.400 --> 00:00:54.640
they'll make the entire app and the entire experience
00:00:54.640 --> 00:00:56.440
for everyone involved better, right?
00:00:56.440 --> 00:00:58.640
Easier for the developers to have code that goes fast
00:00:58.640 --> 00:00:59.800
if their queries are fast,
00:00:59.800 --> 00:01:03.640
customers will be happy that it's not like, wait, did I click the button? Oh, yeah, it's still
00:01:03.640 --> 00:01:07.560
spinning. That's right. You know, like all of these experiences, just like every time I have them,
00:01:07.560 --> 00:01:14.040
I'm just like, remain calm. Somebody didn't put an index somewhere. There should have been one. And
00:01:14.040 --> 00:01:18.440
if this thing will probably work eventually, I don't know if you have those feelings as you go
00:01:18.440 --> 00:01:25.800
around the web. Yes, 100%. I might have taken it a bit far in trying to fix them. But yes,
00:01:25.800 --> 00:01:30.640
I'm going to send a support request and here's the explain document that I've come up with
00:01:30.640 --> 00:01:31.640
for you.
00:01:31.640 --> 00:01:32.640
Fantastic.
00:01:32.640 --> 00:01:33.640
All right.
00:01:33.640 --> 00:01:39.600
Well, we're going to dive into specifically Postgres, but we were chatting a bit before
00:01:39.600 --> 00:01:41.440
we hit record.
00:01:41.440 --> 00:01:46.760
And this much of this guidance expands beyond Postgres, right?
00:01:46.760 --> 00:01:48.680
Even beyond relational potentially.
00:01:48.680 --> 00:01:50.920
Yeah, absolutely.
00:01:50.920 --> 00:01:56.400
And going back to something you said just briefly then, the beauty of databases is they've
00:01:56.400 --> 00:02:01.180
worried so much about performance and you can get up and running, you can get a lot
00:02:01.180 --> 00:02:05.680
of performance out of them without doing even the basics right sometimes.
00:02:05.680 --> 00:02:09.040
But at a certain scale that starts to fall down.
00:02:09.040 --> 00:02:14.600
So yeah, once you're past the first few stages, quite often the performance problems you're
00:02:14.600 --> 00:02:16.560
hitting tend to be database related.
00:02:16.560 --> 00:02:19.000
So yeah, that's what I'm excited about.
00:02:19.000 --> 00:02:25.800
But it's not, yes, most of my recent experiences with Postgres, but the performance is mostly
00:02:25.800 --> 00:02:31.900
about trying to work out how to do less work or how to not do the work in the first place.
00:02:31.900 --> 00:02:37.080
And that's the same whether you're, whichever database you're working with, or yeah, data
00:02:37.080 --> 00:02:38.440
in general, basically.
00:02:38.440 --> 00:02:41.680
Yeah, databases seem magical.
00:02:41.680 --> 00:02:45.240
They take all this data and they come up with answers incredibly quickly, but they're not
00:02:45.240 --> 00:02:46.240
magical.
00:02:46.240 --> 00:02:48.660
and then they know how to sort of estimate
00:02:48.660 --> 00:02:50.920
and plan those together and take guesses.
00:02:50.920 --> 00:02:55.920
And our conversation today will be how to understand
00:02:55.920 --> 00:02:58.200
those different things that databases can do,
00:02:58.200 --> 00:03:00.080
how we can interrogate them
00:03:00.080 --> 00:03:01.480
to tell us what they're trying to do
00:03:01.480 --> 00:03:03.560
and then what changes we can make to make them faster
00:03:03.560 --> 00:03:05.360
and some tools along the way.
00:03:05.360 --> 00:03:09.160
But before we do that, how'd you get into databases
00:03:09.160 --> 00:03:13.000
and being associated with databases?
00:03:13.000 --> 00:03:15.200
- Yeah, so I'm gonna start with the database.
00:03:15.200 --> 00:03:19.640
being associated with PG Mustard and all the stuff you're doing?
00:03:19.640 --> 00:03:20.640
Yes.
00:03:20.640 --> 00:03:26.760
So I, it goes back in university, I studied mathematics.
00:03:26.760 --> 00:03:30.760
So that involved a tiny bit of programming, but really not much, just a little bit of
00:03:30.760 --> 00:03:34.400
statistics that I quickly dropped.
00:03:34.400 --> 00:03:36.600
Tiny bit of mechanics that I dropped as well.
00:03:36.600 --> 00:03:37.600
Very pure.
00:03:37.600 --> 00:03:40.320
There must be something about math in the air.
00:03:40.320 --> 00:03:44.120
The last three episodes I've done have all been like people with PhDs in math and doing
00:03:44.120 --> 00:03:48.200
all sorts of interesting stuff. So and I have a math background as well. But yeah.
00:03:48.200 --> 00:03:49.480
Amazing.
00:03:49.480 --> 00:03:52.280
Yeah, it is. So it started in math. Yeah.
00:03:52.280 --> 00:03:59.800
Yeah, absolutely. No PhD here. But I then went to a... Well, I thought I wanted to be a management
00:03:59.800 --> 00:04:05.320
consultant for my sins back in the day. And then the financial crisis happened. So luckily,
00:04:05.320 --> 00:04:10.840
that got scuppered. And I ended up finding a job at a company called Red Gate, which
00:04:11.720 --> 00:04:13.240
I understand you're actually familiar with.
00:04:13.240 --> 00:04:20.200
So they did database tools, and were predominantly for SQL Server, but also developer tools for
00:04:20.200 --> 00:04:24.240
.NET as you've seen, and then expanded out from there.
00:04:24.240 --> 00:04:30.520
So I started at a time where their most popular product was called SQL Compare for comparing
00:04:30.520 --> 00:04:32.080
databases.
00:04:32.080 --> 00:04:35.520
And just a few months into when I was there, they launched a product called SQL Source
00:04:35.520 --> 00:04:36.520
Control.
00:04:36.520 --> 00:04:40.120
So it got into kind of the change management side of things.
00:04:40.120 --> 00:04:46.120
And luckily got so many opportunities there to do various roles and landed mostly in product
00:04:46.120 --> 00:04:47.120
management.
00:04:47.120 --> 00:04:51.040
Luckily, got a chance to take on their Oracle tools team.
00:04:51.040 --> 00:04:53.320
So it's a tiny team compared to the rest of the company.
00:04:53.320 --> 00:04:57.160
And it was the first foray into their tools for Oracle.
00:04:57.160 --> 00:05:00.600
We also span off a couple of tools for MySQL as well.
00:05:00.600 --> 00:05:06.960
And in working in that small team, we started to see, I wouldn't say the rise of Postgres
00:05:06.960 --> 00:05:12.640
because it's been going for so long, but the kind of the resurgence and the slow and steady
00:05:12.640 --> 00:05:18.080
improvements from that. So yeah, that's that was my kind of first five years of getting
00:05:18.080 --> 00:05:24.240
to know databases. And then what a cool place to do it, right? I mean, there are some very
00:05:24.240 --> 00:05:32.640
hot database companies, you know, Postgres, the MongoDB folks, obviously, Oracle, Microsoft,
00:05:32.640 --> 00:05:36.300
where they make them, but then there's only a few places
00:05:36.300 --> 00:05:38.800
where they really say, and what was missing?
00:05:38.800 --> 00:05:40.260
Let's just fix all of that, right?
00:05:40.260 --> 00:05:41.740
Let's make the developer experience
00:05:41.740 --> 00:05:43.180
really right on databases.
00:05:43.180 --> 00:05:46.740
And I feel like Redgate was very much like that,
00:05:46.740 --> 00:05:49.180
like SQL Compare and the source control stuff.
00:05:49.180 --> 00:05:51.080
That was all very neat.
00:05:51.080 --> 00:05:51.920
- Yeah, absolutely. - Probably still is.
00:05:51.920 --> 00:05:52.740
I haven't touched it for a while,
00:05:52.740 --> 00:05:55.060
but I don't mean to speak of it totally in the past.
00:05:55.060 --> 00:05:57.620
That's my experiences that was in the past.
00:05:57.620 --> 00:05:59.660
- Yeah, and they're doing some cool things now.
00:05:59.660 --> 00:06:02.660
They're doing some of their products across database now.
00:06:02.660 --> 00:06:04.140
They're doing some Postgres things.
00:06:04.140 --> 00:06:06.900
They acquired FlywayDB, which a lot of people use.
00:06:06.900 --> 00:06:12.500
But yes, the thing that first attracted me to them
00:06:12.500 --> 00:06:14.740
was their slogan, believe it or not.
00:06:14.740 --> 00:06:17.120
It was ingeniously simple software,
00:06:17.120 --> 00:06:20.860
which is something about,
00:06:20.860 --> 00:06:22.340
I guess it's the math background as well,
00:06:22.340 --> 00:06:24.060
about getting to a simple solution.
00:06:24.060 --> 00:06:26.940
And we've talked about databases sometimes feeling magic.
00:06:26.940 --> 00:06:29.700
But even if you realize they're not magic,
00:06:29.700 --> 00:06:33.020
they're still complicated or there's certain complexity
00:06:33.020 --> 00:06:34.300
to dealing with them.
00:06:34.300 --> 00:06:36.620
And if you can make that easier for folks,
00:06:36.620 --> 00:06:38.980
or at least help them with better defaults,
00:06:38.980 --> 00:06:42.580
like people designing databases are exceptionally smart
00:06:42.580 --> 00:06:44.580
and they pick the defaults for a reason.
00:06:44.580 --> 00:06:46.700
But in the real world,
00:06:46.700 --> 00:06:50.860
sometimes you can afford to be slightly less conservative
00:06:50.860 --> 00:06:54.660
or choose a certain perspective on something
00:06:54.660 --> 00:06:56.740
and make a tool that's only for a certain subset
00:06:56.740 --> 00:07:02.260
of the users. So you can be a bit more opinionated as a tools vendor versus a platform provider.
00:07:02.260 --> 00:07:07.940
And I like that kind of space where you can differentiate a little bit more on usability
00:07:07.940 --> 00:07:14.260
and performance, maybe a little bit less on the absolute fundamentals.
00:07:14.260 --> 00:07:20.180
Sure. Well, there's so many different situations in which databases are used, right? Are you
00:07:20.180 --> 00:07:25.780
Google? Are you talk Python? Or are you a single little app that one person is using?
00:07:25.780 --> 00:07:32.780
Like these are all very unrecognizable to each other in significant ways.
00:07:32.780 --> 00:07:38.880
Yeah absolutely and the mad thing is they can all run off the same type of database.
00:07:38.880 --> 00:07:39.880
So you could run.
00:07:39.880 --> 00:07:40.880
Yeah that is mad.
00:07:40.880 --> 00:07:41.880
Yeah.
00:07:41.880 --> 00:07:46.380
Yeah that's a really good point that you can run off.
00:07:46.380 --> 00:07:52.020
Basically everyone installs the same database, does some sort of schema creation thing and
00:07:52.020 --> 00:07:54.500
goes from there.
00:07:54.500 --> 00:08:01.060
Absolutely. Or even Mongo, right? Run well. I think that's the key thing. Run well, probably
00:08:01.060 --> 00:08:08.260
most I mean, Facebook still runs off, albeit an admittedly highly modified, very impressive
00:08:08.260 --> 00:08:15.380
MySQL setup. And I think just today we saw a couple, well, maybe in the last two days,
00:08:15.380 --> 00:08:23.060
we've seen a couple of really impressive companies launching SQLite on the edge, you know, so there's
00:08:23.940 --> 00:08:31.420
Really, pretty much any database that's made it to this point can probably support you
00:08:31.420 --> 00:08:35.420
at any scale if you know enough about it or if you want it well.
00:08:35.420 --> 00:08:37.420
Yeah, for sure.
00:08:37.420 --> 00:08:38.420
How interesting.
00:08:38.420 --> 00:08:45.460
All right, now before we get into optimizing these, first let's get the order right.
00:08:45.460 --> 00:08:47.780
Understanding the performance and then optimizing, right?
00:08:47.780 --> 00:08:52.220
Not take a shot at optimizing and then we'll figure out if we got the right spot.
00:08:52.220 --> 00:08:55.980
like profiling and performance optimization of code.
00:08:55.980 --> 00:08:58.660
Let's just talk for a minute about
00:08:58.660 --> 00:09:04.260
of we were no matter what,
00:09:04.260 --> 00:09:06.880
GUI tools for managing databases.
00:09:06.880 --> 00:09:09.820
Because I saw that you were using
00:09:09.820 --> 00:09:11.380
in some presentations you're doing,
00:09:11.380 --> 00:09:16.380
you're using DBeaver, which is pretty interesting.
00:09:16.380 --> 00:09:18.460
And I feel like a lot of people
00:09:18.460 --> 00:09:20.120
don't end up using these tools.
00:09:20.120 --> 00:09:21.700
So maybe you could highlight a couple
00:09:21.700 --> 00:09:24.900
that I think sort of stand out for just interesting database stuff.
00:09:24.900 --> 00:09:29.980
I mean, coming from a tool vendor, of course.
00:09:29.980 --> 00:09:32.980
Yeah, no, go ahead.
00:09:32.980 --> 00:09:33.980
- I do apologize.
00:09:33.980 --> 00:09:36.420
I got a tiny bit of lag there.
00:09:36.420 --> 00:09:44.340
But yes, so if you can hear me clearly, then I do like dbeaver for doing demos.
00:09:44.340 --> 00:09:49.900
It's very easy to run multiple queries in a row that you don't have to type out or copy
00:09:49.900 --> 00:09:52.140
paste around.
00:09:52.140 --> 00:09:59.780
It's also exceptional for post GIS, which is for geographic data.
00:09:59.780 --> 00:10:05.140
I know a few people are really keen on its visualizations for that.
00:10:05.140 --> 00:10:11.300
I tend to not use it day to day anymore, but only because there's so many tools out there
00:10:11.300 --> 00:10:13.700
that you can use.
00:10:13.700 --> 00:10:19.140
I think you've listed a few, but a lot of people are very keen on the default one that
00:10:19.140 --> 00:10:21.180
that ships with Postgres called PSQL,
00:10:21.180 --> 00:10:23.060
which is a command line interface.
00:10:23.060 --> 00:10:24.660
Very, very powerful.
00:10:24.660 --> 00:10:27.500
Can do a lot of things that other tools can't,
00:10:27.500 --> 00:10:29.900
but has quite a steep learning curve in my opinion.
00:10:29.900 --> 00:10:32.900
There's some people doing really good tutorials on,
00:10:32.900 --> 00:10:39.340
I think Leticia is doing some really good conference talks
00:10:39.340 --> 00:10:41.620
at the moment on this and has done them in the past
00:10:41.620 --> 00:10:44.660
and has a website around PSQL tips.
00:10:44.660 --> 00:10:48.420
So yeah, there's loads of good gurus out there.
00:10:48.420 --> 00:10:52.060
My, at the moment I'm using a really modern one
00:10:52.060 --> 00:10:56.060
called ArchType, only recently launched,
00:10:56.060 --> 00:11:01.740
but I tend to try out tools probably earlier than most would.
00:11:01.740 --> 00:11:03.300
- But wait, this looks nice.
00:11:03.300 --> 00:11:04.140
- Right?
00:11:04.140 --> 00:11:05.300
(laughing)
00:11:05.300 --> 00:11:06.460
- It's real nice.
00:11:06.460 --> 00:11:10.460
ArchType, A-R-C-T-Y-P-E.com.
00:11:10.460 --> 00:11:11.580
- You got it.
00:11:11.580 --> 00:11:12.820
- Yeah, right on.
00:11:12.820 --> 00:11:14.500
This is cool.
00:11:14.500 --> 00:11:17.100
Okay, and this works on the different databases
00:11:17.100 --> 00:11:18.100
that you might.
00:11:18.100 --> 00:11:23.360
So they stripped back down to a couple, maybe a year or two ago.
00:11:23.360 --> 00:11:29.860
So it was Postgres and MySQL, I believe, but I think they're adding some back in.
00:11:29.860 --> 00:11:31.480
Not 100% sure though, sorry.
00:11:31.480 --> 00:11:34.040
I'm Postgres through and through.
00:11:34.040 --> 00:11:36.300
Yeah, it solves the problem.
00:11:36.300 --> 00:11:38.240
What else do we need to worry about, right?
00:11:38.240 --> 00:11:39.240
Absolutely.
00:11:39.240 --> 00:11:42.520
And if we're talking specifics, actually, because I'm on Postgres on a Mac, I think
00:11:42.520 --> 00:11:48.800
probably the best long-lived option and one that's been around for years, I would say
00:11:48.800 --> 00:11:56.180
is Postico, which is a Mac-only app. But, yes, it's lightning fast, which I -- so Postico
00:11:56.180 --> 00:11:59.180
with an O at the end.
00:11:59.180 --> 00:12:07.620
>> Cool. Okay. Oh, Mac-only. Okay. Yeah, that's pretty nice. But this other one, this
00:12:07.620 --> 00:12:10.820
archetype looks really nice.
00:12:10.820 --> 00:12:12.380
that looks on everything, right?
00:12:12.380 --> 00:12:14.340
- No, no, of course, you're absolutely right, they're not,
00:12:14.340 --> 00:12:16.060
but they need to work well.
00:12:16.060 --> 00:12:18.500
So the two others that I was gonna throw out there
00:12:18.500 --> 00:12:22.500
that are kind of nice, this one clearly is not for Postgres
00:12:22.500 --> 00:12:25.620
because it's DB browser for SQLite.
00:12:25.620 --> 00:12:28.700
But at the same time, I feel like a lot of people
00:12:28.700 --> 00:12:32.180
are interested in databases, generally not just Postgres,
00:12:32.180 --> 00:12:34.220
right, you can come across SQLite all over the place.
00:12:34.220 --> 00:12:37.140
So I think this one is nice, this one is free.
00:12:37.140 --> 00:12:40.740
And then have you done anything with Bkeeper?
00:12:40.740 --> 00:12:42.500
No, I have seen it around.
00:12:42.500 --> 00:12:45.100
- Yeah, Beekeeper's pretty nice.
00:12:45.100 --> 00:12:47.180
It gives you like auto-complete for your queries
00:12:47.180 --> 00:12:50.120
and ways to explore your schemas.
00:12:50.120 --> 00:12:51.500
But what it seems to not have really
00:12:51.500 --> 00:12:56.500
is any sort of exploration of the schema visually, right?
00:12:56.500 --> 00:13:01.260
There's not like a UML looking diagram type thing, so.
00:13:01.260 --> 00:13:03.540
- Yeah, one last one before we,
00:13:03.540 --> 00:13:06.180
I think a company that are doing great things
00:13:06.180 --> 00:13:08.740
in ID space in general, JetBrains,
00:13:08.740 --> 00:13:11.900
and their DataGrip product is very good as well.
00:13:11.900 --> 00:13:15.580
And very, very cross-platform in terms of different support
00:13:15.580 --> 00:13:16.780
for different databases.
00:13:16.780 --> 00:13:18.900
- Yeah, absolutely.
00:13:18.900 --> 00:13:22.580
I think, yeah, DataGrip is really great, right?
00:13:22.580 --> 00:13:25.820
Like if you use PyCharm, for example,
00:13:25.820 --> 00:13:29.540
and when you're doing the database features of PyCharm,
00:13:29.540 --> 00:13:31.100
it really is just DataGrip, right?
00:13:31.100 --> 00:13:33.860
If you just want the standalone edition.
00:13:33.860 --> 00:13:35.420
So super cool.
00:13:35.420 --> 00:13:36.700
Yeah, these are all really nice.
00:13:36.700 --> 00:13:39.580
and I discovered a few myself as well from this.
00:13:39.580 --> 00:13:42.260
So, awesome.