Announcement

Collapse
No announcement yet.

SQLite 3.43 Released With Up To 2x Performance For JSON Processing

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQLite 3.43 Released With Up To 2x Performance For JSON Processing

    Phoronix: SQLite 3.43 Released With Up To 2x Performance For JSON Processing

    SQLite 3.43 is out today as the newest version of this popular open-source embedded SQL database library that is widely used by countless applications and other software for a variety of data storage purposes...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    SQLite doesn't have many data types, it has like NUMBER and TEXT, it doesn't have different size integers, and such.

    Comment


    • #3
      It's dynamically typed. It uses type "affinity" instead.

      Comment


      • #4
        Originally posted by uid313 View Post
        SQLite doesn't have many data types, it has like NUMBER and TEXT, it doesn't have different size integers, and such.
        Most databases are a mess regarding types. When looking at Maria or Postgre, it's ridiculous how messy it is. I wish one had the types based on Rust's (i8..i64 u8..u64, f32, f64 etc.)

        Comment


        • #5
          Originally posted by rmfx View Post

          Most databases are a mess regarding types. When looking at Maria or Postgre, it's ridiculous how messy it is. I wish one had the types based on Rust's (i8..i64 u8..u64, f32, f64 etc.)
          Yeah, I strongly agree!
          These tinyint, mediumint, largeint, hugeint, humongousint, long, double longs, is so stupid and confusing, the Rust data types would be great for a database.

          Comment


          • #6
            For the data types: https://www.sqlite.org/datatype3.html

            Looks like just the right amount of types to me for intended purpose : integer (0, 1, 2, 3, 4, 6, or 8 bytes) , real (8 bytes), text, blob, and null. Keep it simple!
            Last edited by rclark; 24 August 2023, 08:13 PM.

            Comment


            • #7
              Originally posted by uid313 View Post

              Yeah, I strongly agree!
              These tinyint, mediumint, largeint, hugeint, humongousint, long, double longs, is so stupid and confusing, the Rust data types would be great for a database.
              rewrite databases in rust

              Comment


              • #8
                Originally posted by rclark View Post
                For the data types: https://www.sqlite.org/datatype3.html

                Looks like just the right amount of types to me for intended purpose : integer (0, 1, 2, 3, 4, 6, or 8 bytes) , real (8 bytes), text, blob, and null. Keep it simple!
                technically they store 0.125 bytes as well (i.e. integer 1) https://www.sqlite.org/fileformat.html (section 2.1 serial type 9)

                I agree that there's way too much useless type checking going on in software in general, but especially in the storage layer. what if you have an enum of 2,3,4? Is anyone going to write some sql function to enforce that constraint? but you'll feel better somehow knowing that the database ensures it's an smallint?

                sqlite actually makes some sense in this regard, this background/rationale is actually a pretty good read:

                Comment


                • #9
                  Originally posted by cantundonexttime View Post
                  It's dynamically typed. It uses type "affinity" instead.
                  Whether some language or system is dynamically typed (which SQLite indeed is) does not affect the number of types.

                  Comment


                  • #10
                    Originally posted by rmfx View Post

                    Most databases are a mess regarding types. When looking at Maria or Postgre, it's ridiculous how messy it is. I wish one had the types based on Rust's (i8..i64 u8..u64, f32, f64 etc.)
                    You mean SMALLINT(i16), INT(i32) and BIGINT(i64)? Or REAL(f32) and DOUBLE(f64)? Could you elaborate how "messy" that is?

                    Oh, maybe you're not aware of their aliases: INT2, INT4, INT8, FLOAT4, FLOAT8.

                    Other numeric (NUMERIC, DECIMAL, MONEY, BIT) are for specific purposes, don't bother with them until you'll have the need.
                    I'm talking about PostgreSQL, MariaDB is a clone of MySQL 8 RDBMS (which is the RDBMS made by Oracle from former MySQL 5 definitely-not-the-RDBMS-but-rather-data-bag).
                    Last edited by gotar; 25 August 2023, 04:33 AM.

                    Comment

                    Working...
                    X