Make your database queries 1000 times faster!

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ต.ค. 2024

ความคิดเห็น • 85

  • @longshin4299
    @longshin4299 3 หลายเดือนก่อน

    I love this guy. Why I don't this guy recently?

  • @DerClaudius
    @DerClaudius 10 หลายเดือนก่อน

    Quick question... the switching looked instant, although I would expect that at least the first execution of the query should still be slow to fill the boost cache and setup the change listeners..
    Did you just skip that for the vid?

    • @PlanetScale
      @PlanetScale  10 หลายเดือนก่อน +1

      Boost fills the cache in the background. So until Boost is ready the queries don't run through it. As far as listeners, it just subscribes to the existing Vitess events so that part is pretty lightweight

  • @softwaredevx
    @softwaredevx 8 หลายเดือนก่อน

    You guys are amazing. Love to watch your videos and learn new things.

  • @VuTuanIT
    @VuTuanIT ปีที่แล้ว +12

    I didn't give it a try but I'm curious:
    - The cache is updated in sync or async? will the updates be available right after we write the new values?
    - Will the cache work well on heavy write tables? Something like a data logs table that can have a thousand rows written per second

  • @wagnerbugs
    @wagnerbugs ปีที่แล้ว +110

    Do you know what the only problem with this channel is? Without a doubt, it's not having videos every day. 😂 Congratulations on yet another great video. ❤

  • @DirkSchut
    @DirkSchut 10 หลายเดือนก่อน +1

    Probably never gonna need this, but I'm curious why an 8GB cache is more than 8x as expensive as a 1GB cache.

  • @GoncaloMangana
    @GoncaloMangana ปีที่แล้ว +13

    So, the more materialized cached views you have using the same tables, the worst the write performance will be? How much impact does it have? I'm curious if it is an acceptable trade off, like if you get an extra 2s on a write but gain 60s on a read, I would be ok with that. Could you shed some light please?

  • @TomandJerryaredead
    @TomandJerryaredead 10 หลายเดือนก่อน +1

    Does Boost support ORDER BY queries? And does it support the use of NOW() in a WHERE clause?

  • @m.h.6470
    @m.h.6470 ปีที่แล้ว +10

    As someone who works with bigger databases and complex queries on a daily basis, I can say, that this is quite unrealistic. The queries that take a lot of time are not the queries, that are run over and over again. Those repeated queries are usually optimized already. The big long queries are the queries that are very complex and have many dynamic parts (like different where clauses, changing group conditions, etc.) and can therefore not be cached or optimized in the way you are saying.

    • @captainchaos3667
      @captainchaos3667 10 หลายเดือนก่อน +3

      If something sounds too good to be true, that's probably because it's not true. If it was this easy to make every query a thousand times faster everyone would do that. Disappointing to see clickbait on this channel, but good to know.

  • @adarshchacko6137
    @adarshchacko6137 ปีที่แล้ว

    Curious question:
    Between the 2 which is faster and why ?
    QUERY 1:
    SELECT * FROM users;
    QUERY 2:
    SELECT FROM users;

    • @gileee
      @gileee ปีที่แล้ว +1

      Selecting a single column is less data. Less data needs to be read from storage, sent over the network and in the end displayed/processed, so it'll be faster.
      "*" in general means the db will need to first fetch what columns exist on that table in order to retrieve them. So it's never ideal for performance, even if you need all the data.

    • @adarshchacko6137
      @adarshchacko6137 ปีที่แล้ว

      @@gileee Thanks
      Didn't quite get the last part though "So it's never ideal for performance, even if you need all the data."
      What is not ideal... "SELECT *" ??

    • @gileee
      @gileee ปีที่แล้ว +1

      @@adarshchacko6137 Yeah. If you do * apparently the db has to first fetch the definition of the table to figure out which columns it has. So it would be slightly more performant to write "SELECT col1, col2, ..." and list all the columns.

    • @adarshchacko6137
      @adarshchacko6137 ปีที่แล้ว

      Understood... Thank you @gileee

  • @chenhaotang-r6n
    @chenhaotang-r6n ปีที่แล้ว +1

    Hi, that's great! Is there any introduction to the implementation of the boost acceleration function in the source code?

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว +2

      The most technical documents we have on the implementation would be in the linked blog post! I think in the blog post there is also a link to the academic paper it's based upon

    • @chenhaotang-r6n
      @chenhaotang-r6n ปีที่แล้ว

      @@PlanetScale This OSDI ’18 paper is really very detailed.
      I would like to know more code details. Is the source code of Boost function public? So which file is the entrance to the implementation in the github warehouse?😀

  • @pinguluk1
    @pinguluk1 ปีที่แล้ว +2

    What are the disadvantages?

    • @ropoxdev
      @ropoxdev ปีที่แล้ว

      Cost, but it’s free during beta

  • @micha-ix1iy
    @micha-ix1iy ปีที่แล้ว +3

    Is this eventuell consistent or does writing block until boost’s caches are updated?

  •  ปีที่แล้ว +16

    This guy is very smart

  • @faiz_0000
    @faiz_0000 10 หลายเดือนก่อน

    10:32
    what about the data that already exist in the database? do you rewrite the entire data or just move the existing data to cache based on the query that we want to boost

  • @sampleshawn5380
    @sampleshawn5380 ปีที่แล้ว +1

    Man you are awesome, i am binge watching your stuff, kudos

  • @spicynoodle7419
    @spicynoodle7419 ปีที่แล้ว +6

    Write-through cache

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว +3

      It's similar but PlanetScale Boost is more performant and less to maintain.

    • @spicynoodle7419
      @spicynoodle7419 ปีที่แล้ว +3

      @@PlanetScale I shall get to the bottom of this dark magic

  • @dechobarca
    @dechobarca ปีที่แล้ว +2

    Why does a simply query that returns just a thousand records take almost an entire second in first place?

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว +4

      It's joining in a table that's an aggregate over a few million rows

    • @dechobarca
      @dechobarca ปีที่แล้ว

      @@PlanetScale ah I see, my bad. I don't use planetscale myself, but you do have some good SQL videos, so keep up the great work, cheers!

  • @kskredderbakken
    @kskredderbakken ปีที่แล้ว

    why isn't boost standard......?

    • @kskredderbakken
      @kskredderbakken ปีที่แล้ว

      HOW isn't he question. WHY is the question. We have good enough chips to leave 1980 behind.

    • @PlanetScale
      @PlanetScale  11 หลายเดือนก่อน

      It's a good question! The research paper was only released recently. We're among the few people in the world that have implemented it at a production grade. It's tough to deconstruct queries and apply partial updates to caches upon write instead of rerunning entire queries, so that's my guess.

  • @chinheiyung1303
    @chinheiyung1303 ปีที่แล้ว +5

    What is the sql client are you using? Look so sleek

  • @StevenGlrz
    @StevenGlrz ปีที่แล้ว +2

    Does this have a penalty on write performance?

  • @jwbonnett
    @jwbonnett 10 หลายเดือนก่อน

    Sounds the same as a projection

  • @michelvandermeiren8661
    @michelvandermeiren8661 ปีที่แล้ว

    Impressive ! Is the web interface for continuous testing opensource ?

  • @WaltersWatching
    @WaltersWatching ปีที่แล้ว +9

    You'd think a cache would be affordable, $100/month minimum is wild.

  • @icebox747
    @icebox747 ปีที่แล้ว

    Anyone knows the Vetez he is mentioning in the video?

  • @ucretsiztakipci6612
    @ucretsiztakipci6612 ปีที่แล้ว +13

    Excellent feature but too expensive.

  • @GottZ
    @GottZ ปีที่แล้ว +2

    The auto creation of triggers to update cached representations / views on the fly on data changes sure is impressive.. how ever.. isn't this 101 of database architecture, anyone creating proper databases should know?
    This feels like a feature primarily targeted towards people with lacking database knowledge.
    Especially the video title.

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว +1

      Sorry if it wasn't clear, this does not rely on triggers or views. It creates a query plan, inverts it, and incrementally updates the cache as new writes come in. It works for more than just counts, and it doesn't run the entire query again. The attached blog post goes into more detail if you're interested.

  • @fuxtnegrx
    @fuxtnegrx ปีที่แล้ว +2

    Error Code: 1193. Unknown system variable 'boost_cached_queries' 0.141 sec

  • @arthurmagamedov3179
    @arthurmagamedov3179 ปีที่แล้ว +2

    That's nice!! It's like IBM DB2 version of MQT with MAINTAIN BY SYSTEM option, but created automatically! That's cool!!

  • @stefanotorelli3688
    @stefanotorelli3688 ปีที่แล้ว

    You forgot to explain the architecture of your solution, even if it OOB in MySQL.

  • @jacekkangaroo4402
    @jacekkangaroo4402 ปีที่แล้ว +2

    I hate when people do not use table/view aliases, it is a very bad habit, it makes complex queries difficult to analyze

  • @otmanm4095
    @otmanm4095 ปีที่แล้ว +14

    This guy is very strong

  • @mainakdas5819
    @mainakdas5819 ปีที่แล้ว +2

    What is the application used for running SQL query?

    • @isakhansson917
      @isakhansson917 ปีที่แล้ว

      He literally said it in the video?

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว +2

      TablePlus!

    • @mainakdas5819
      @mainakdas5819 ปีที่แล้ว

      @@isakhansson917 maybe I missed 😅

  • @yousafwazir286
    @yousafwazir286 ปีที่แล้ว +2

    How dose it make it 1000 x faster ?

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว +1

      Boost deconstructs the query plans and applies incremental updates to the cache when data is updated. For more details check out the video or the linked post!

  • @ComfyCosi
    @ComfyCosi ปีที่แล้ว +4

    Lenseless glasses T_T

  • @vickoalan
    @vickoalan ปีที่แล้ว +1

    if we use Planetscale Boost we don't need caches like radius right???

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว

      For queries that are Boosted, you would no longer need a cache!

  • @aarondfrancis
    @aarondfrancis ปีที่แล้ว +8

    This guy is very me

    • @OrangeNerd1
      @OrangeNerd1 ปีที่แล้ว +1

      light mode 🤨

    • @aarondfrancis
      @aarondfrancis ปีที่แล้ว

      @@OrangeNerd1 ¯\_(ツ)_/¯

  • @SeyedMansour27
    @SeyedMansour27 ปีที่แล้ว +3

    Just found your chanel, can't stop watching :D, great videos so far, keep up the good work.
    For things like this i tend to to add a redundant (count/calc/processed) column to the table and update it on created_at/updated at, it does just fine. your method is probably faster since you do less with db but u use more non-db resources, so it's trade off i guess.

  • @frederikadmiralshi4080
    @frederikadmiralshi4080 ปีที่แล้ว +3

    Can’t be the only one that ended up feeling this was an Ad disguised as a video.
    👎🏻😞

  • @blazed-space
    @blazed-space ปีที่แล้ว +1

    You guys have gotten my business, your product is amazing and prioritizes speed and affordability which is key for me

  • @Alekzv9
    @Alekzv9 ปีที่แล้ว +2

    This guy is very handsome

    • @dn5426
      @dn5426 ปีที่แล้ว +1

      your last name checks out!

  • @GackFinder
    @GackFinder ปีที่แล้ว

    5:28

  • @martintsekov7820
    @martintsekov7820 ปีที่แล้ว +3

    Quite weird that he wears fake glasses..

  • @daguttt
    @daguttt ปีที่แล้ว +1

    Sheeeesh

  • @Guilherme-qk9so
    @Guilherme-qk9so ปีที่แล้ว

    Very cool!

  • @mehboobfazal
    @mehboobfazal ปีที่แล้ว

    Pretty old days my mysql 😊.
    Love to see this happen. I'll really give a shot in my next upcoming project.

  • @pietraderdetective8953
    @pietraderdetective8953 ปีที่แล้ว

    Amazing!
    Love planetscale coz of these improvements they're doing 👍🏻

  • @ousspero
    @ousspero ปีที่แล้ว +1

    This is what we call a View

    • @obapelumi
      @obapelumi ปีที่แล้ว +1

      Not necessarily. A view gets re-created/re-calculated whenever it is read/queried. With planet scale boost it is re-calculated when the underlying data which the query represents is written to

    • @PlanetScale
      @PlanetScale  ปีที่แล้ว +2

      Kind of! In the video I explain why it's like a view, but fundamentally quite different.

  • @GackFinder
    @GackFinder ปีที่แล้ว

    set @@boost_cached_queries = 1;