ブックマーク / zenn.dev/tak_iwamoto (3)

  • PlanetScaleとは何か、なぜ外部キー制約をサポートしていないのか

    PlanetScaleとは PlanetScaleはMySQLのマネージドサービスです。 内部の実装には元々YouTubeのために開発されたMySQLのクラスタリングシステムであるVitessが使用されています。 Vitessの開発に携わってらっしゃるSugu SougoumaraneさんがCTOとして在籍しており、スケーラブルなデータベースを構築するためのサービスとなっています。 すでにSlack, Square, GitHubなどの企業で採用されているそうです。 この記事ではPlanetScaleのどういった点が優れているのか、これまでMySQLが抱えていた問題点をどのように解決しているのかといったことをまとめます。 その中でタイトルにもつけましたが、なぜ外部キー制約をサポートしていないのかといった点も交えて説明します。 これまでのMySQLの問題点 大量のレコードが存在するテーブルの

    PlanetScaleとは何か、なぜ外部キー制約をサポートしていないのか
    toshikish
    toshikish 2022/03/28
  • RustのSchema First GraphQLライブラリrusty-gqlを作りました

    なぜ作ったのか これまでRustGraphQLライブラリはjuniperとasync-graphqlがありました。 これら2つはCode Firstで設計されており、GraphQLのスキーマ定義をRustのマクロを使用して定義します。 以下はasync-graphqlの例です。 use async_graphql::*; struct MyObject { value: i32, } #[Object] impl MyObject { async fn value(&self) -> String { self.value.to_string() } async fn value_from_db( &self, ctx: &Context<'_>, #[graphql(desc = "Id of object")] id: i64 ) -> Result<String> { let co

    RustのSchema First GraphQLライブラリrusty-gqlを作りました
    toshikish
    toshikish 2022/02/01
  • TypeScriptのTips集

    この記事は TypeScript Advent Calendar 2020 の 17 日目です。 今回は TypeScript のTipsをいくつかあげていきたいと思います! 割と基的なものが多いので、普段から TypeScript をがっつり書いている方に取ってはすでに知っているものが多いかもしれません。ただ、意識しないとあまり使わなかったり、TypeScript の経験がない方に取っては新鮮なものもあるのでは?と思ったので書いてみました。 keyof オブジェクトのキーを union 型に type Post = { id: number; title: string; content: string; }; type PostKey = keyof Post; // type PostKey = "id" | "title" | "content" const sortBy = <

    TypeScriptのTips集
    toshikish
    toshikish 2020/12/21
  • 1