Novinky ve starém dobrém SQL světě OpenAlt, 2014/11/02

Podobné dokumenty
MySQL sežere vaše data

Vkládání, aktualizace, mazání

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

PostgreSQL Novinky (a JSONB) Tomáš Vondra, GoodData (tomas.vondra@gooddata.com) (tomas@pgaddict.

Optimalizace dotazů a databázové transakce v Oracle

Databázové systémy Cvičení 5.2

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Bi-Direction Replication

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Verzování a publikace dat na webu za pomoci PostgreSQL

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Jazyk SQL slajdy k přednášce NDBI001

Použití databází na Webu

6. SQL složitější dotazy, QBE

Databáze I. Přednáška 4

Tabulka fotbalové ligy

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

INDEXY JSOU GRUNT. Pavel Stěhule

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Jazyk SQL databáze SQLite. připravil ing. petr polách

1. Relační databázový model

MySQL manuál. Copyright: Adam Jun Stránky manuálu:

Sada 1 - PHP. 14. Úvod do jazyka SQL

4IT218 Databáze. 4IT218 Databáze

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Monitoring výkonu PostgreSQL

Databázové systémy a SQL

cstore_fdw column store pro PostgreSQL Prague PostgreSQL Developer Day 2015 Jan Holčapek

Dotazovací jazyk SQL I

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

- sloupcové integritní omezení

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Datablades včera, dnes a zítra

Hadoop a HDFS. Bc. Milan Nikl

Novinky v PostgreSQL 10 (a 11)

MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)

Michal Krátký, Miroslav Beneš

FAKULTA STAVEBNÍ STUDIJNÍ PROGRAM: GEODÉZIE A KARTOGRAFIE TYP PROGRAMU: MAGISTERSKÝ STUDIJNÍ OBOR: GEOMATIKA ÚVOD DO ZPRACOVÁNÍ PROSTOROVÝCH DAT

Novinky v Microsoft SQL Serveru RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Vladimír

PG 9.5 novinky ve vývoji aplikací

TimescaleDB. Pavel Stěhule 2018

Database systems. Normal forms

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Databáze I. Přednáška 7

Informační systémy 2008/2009. Radim Farana. Obsah. Základní principy XML

SQL. relační databázový systém. v úvodní kurz jazyka SQL

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

Paralelní dotazy v PostgreSQL 9.6 (a 10.0)

Databázové a informační systémy Jana Šarmanová

FIREBIRD relační databázový systém. Tomáš Svoboda

Jazyk SQL 3 - DML, DDL, TCL, DCL

Integritní omezení (IO)

SQL injection princip a ochrana

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Střední odborná škola a Střední odborné učiliště, Hořovice

Zápisování dat do databáze

Měřící systém se vzdáleným přístupem. Databáze

Nerelační databázové modely. Helena Palovská

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

Úvod do databázových systémů

Databázové systémy I

Čteme EXPLAIN. CSPUG, Praha. Tomáš Vondra Czech and Slovak PostgreSQL Users Group

Databáze I. 5. přednáška. Helena Palovská

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

Semestrální práce z DAS2 a WWW

Databáze II. 2. přednáška. Helena Palovská

Synchronní replikace v PostgreSQL 9.1

Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky Katedra informačních technologií

Konceptuální modelování a SQL

První pomoc pro DBA. administrátory CIDUG. Milan Rafaj IBM Česká republika

Object-relational mapping (JPA, Hibernate)

Univerzita Pardubice. Centrální správa dokumentů

Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny.

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Implementace funkce XMLTABLE v PostgreSQL. Pavel

Transkript:

Novinky ve starém dobrém SQL světě OpenAlt, 2014/11/02 PRESENTED BY: Honza Horák

Co nás čeká Obecný pohled na data ve světě Staronoví členové SQL klubu MySQL MariaDB Galera PostgreSQL

Malá odbočka... Buzzword bingo, zname take jako Bullshit bingo je hra ve stylu binga, kde si ucastnici pripravi karty s buzzword vyrazy a skrtaji je, jakmile jsou pouzite na porade/prednasce. Cil hry je vyskrtat zvoleny pocet slov v radku nebo sloupci a v takovem pripade zvolat 'Bingo' (nebo 'Bullshit') (http://en.wikipedia.org/wiki/buzzword_bingo)

Nový pohled na data Cloud pets vs. cattle HA, fail-over, replikace, škálování Agilní programování Konec vodopádů Frameworky Time To Market Méně složitých datových modelů

NoSQL a proč jsou in MongoDB JSON Struktura automaticky Replikace a škálování out-of-the-box Map-Reduce model parelelizace Cassandra Hadoop CouchDB NoSQL vychytávky označené ( )

Ukázka MongoDB aplikace db = connection.students.myseminar # insert a document student_record = {'name':student_name,'grade':student_grade} db.insert(student_record) # find all documents results = db.find() for record in results: print(record['name'] + ',',record['grade'])

Polyglot persistance Polyglot Persistence, like polyglot programming, is all about choosing the right persistence option for the task at hand https://www.altamiracorp.com/blog/employee-posts/polyglot-persistence

Staronoví členové SQL klubu

MySQL Stále podporována 5.5.40 GA 5.5 prosinec 2010, EOL prosinec 2015 Nyní 5.6.21, bugfix verze cca po 2 měsících GA 5.6 únor 2013 CVE jednou za 3 měsíce; pouze seznam Merge kódu při vzdání na lauchpad, jinak vyvíjen uzavřeně Komunita mizí, něco pouze v Enterprise verzi Důsledek: OS produkt, ne projekt (2015?)

MariaDB GA 5.5 duben 2012 (nyní 5.5.40) GA 10.0 březen 2014 (nyní 10.0.13) 10 znamená změnu client-server protokol bude fungovat dál Jména souborů in cesty zachovány EOL po 5 letech Lepší komunita, chce být pravý open-source Důraz na delší testování, více testů

Galera Codership patch + plugin k běžnému MySQL Synchronní multi-master replikace Zápis může být proveden na libovolném serveru a bude synchronně aplikován v celém clusteru MariaDB patch aplikuje a vydává variantu MariaDB-Galera Od 10.1 součást hlavní větve MariaDB

PostgreSQL Nejčistčí open-source projekt Stabilní růst Minor verze cca po roce 9.4 beta3 říjen 2014 9.3 září 2013 Bugfix verze jak je potřeba Méně rozšířen zejména z historických důvodů

Sqlite 3.8.0 GA srpen 2013 Embedded Mnoho feature vylepseno Zadna tak zajimava jako byl WAL v 3.7.0 Nebo je prece v 3.8.0 neco, co bychom meli zminit?

MySQL 5.5 features InnoDB defaultní engine Semi-Synchronous Replication Master čeká dokud alespoň jeden slave nepotvrdí přijetí Replication Heartbeat Performance Schema Přístup k low-level MySQL performance Nativní Asynchronous I/O for Linux Zlepšen výkon i škálovatelnost jednoho serveru

MySQL Performance schema mysql> SELECT EVENT_ID, EVENT_NAME, TIMER_WAIT -> FROM events_waits_history WHERE THREAD_ID = 13 -> ORDER BY EVENT_ID; +----------+-----------------------------------------+------------+ EVENT_ID EVENT_NAME TIMER_WAIT +----------+-----------------------------------------+------------+ 86 wait/synch/mutex/mysys/thr_lock::mutex 686322 87 wait/synch/mutex/mysys/thr_lock_malloc 320535 88 wait/synch/mutex/mysys/thr_lock_malloc 339390 89 wait/synch/mutex/mysys/thr_lock_malloc 377100 90 wait/synch/mutex/sql/lock_plugin 614673 91 wait/synch/mutex/sql/lock_open 659925 92 wait/synch/mutex/sql/thd::lock_thd_data 494001 93 wait/synch/mutex/mysys/thr_lock_malloc 222489 94 wait/synch/mutex/mysys/thr_lock_malloc 214947 95 wait/synch/mutex/mysys/lock_alarm 312993 +----------+-----------------------------------------+------------+ (http://dev.mysql.com/doc/refman/5.5/en/performance-schema-quick-start.html)

MySQL 5.6 features Výkon++ Index Condition Pushdown, Multi-Range Read, File Sort Optimization Partitioning explicitně definován Multi-threaded slaves Crash-Save slaves GTID (3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5) Memcached ( ) (http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html)

MySQL 5.6 memcached mysql> CREATE TABLE `test`.`users` ( `user_id` varchar(32) NOT NULL DEFAULT '', `first` varchar(100) DEFAULT NULL, `last` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; mysql> INSERT INTO `containers` (`name`, `db_schema`, `db_table`, `key_columns`, `value_columns`, `unique_idx_name_on_key`) VALUES ('default', 'test', 'users', 'user_id', 'firstlast', 'PRIMARY'); <?php $memcache = new Memcache; $memcache->connect('localhost', 11211); $memcache->set('bar', 'JohnSmith');?> mysql> select * from `test`.`users`; +-----+--------+---------+ id first last +-----+--------+---------+ bar John Smith +-----+--------+---------+ (http://chipersoft.com/p/mysql-via-memcache/)

MariaDB 5.5 features InnoDB defaultní engine (vlastně XtraDB) Aria crash safe MyISAM Connect, TokuDB, SphinxSE Non-blocking API u klienta Vybrané vychytávky z 5.6 Extended Keys (index-only scans) Další vychytávky: LIMIT ROWS EXAMINED, nové status proměnné

MariaDB 5.5 Connect $ cat boys.txt John Boston Henry Boston George San Jose Sam Chicago James Dallas Bill Boston 25/01/1986 07/06/1987 10/08/1981 22/11/1979 13/05/1992 11/09/1986 02/06/2010 01/04/2008 02/06/2010 10/10/2007 14/12/2009 10/02/2008 mysql> create table boys ( name char(12) not null, city char(12) not null, birth date not null date_format='dd/mm/yyyy', hired date not null date_format='dd/mm/yyyy' flag=36) engine=connect table_type=fix file_name='boys.txt' lrecl=48; Zdroj: https://mariadb.com/kb/en/mariadb/documentation/storage-engines/connect/co nnect-table-types/connect-table-types-data-files/

MariaDB 10.0 features GTID, ale trochu jinak než v MySQL (např. 0-1-10) Co má navíc oproti MySQL: see link bellow Cassandra ( ), Spider engine ( ), flexible parallel slave repl. Engine Independent Statistics Dynamické sloupce ( ) Vychytávky dostupné jen v MySQL Enterprise Roles, Audit plugin, PAM plugin https://mariadb.com/blog/mariadb-10-vs-mysql-56-feature-comparison-update

MariaDB dynamic columns create table assets ( item_name varchar(32) primary key, -- A common attribute for all items dynamic_cols blob -- Dynamic columns will be stored here ); INSERT INTO assets VALUES ('MariaDB T-shirt', COLUMN_CREATE('color', 'blue', 'size', 'XL')); INSERT INTO assets VALUES ('Thinkpad Laptop', COLUMN_CREATE('color', 'black', 'price', 500)); SELECT item_name, COLUMN_GET(dynamic_cols, 'color' as char) AS color FROM assets; +-----------------+-------+ item_name color +-----------------+-------+ MariaDB T-shirt blue Thinkpad Laptop black +-----------------+-------+ (https://mariadb.com/kb/en/mariadb/documentation/nosql/dynamic-columns/)

PostgreSQL 9.0 Hot Stantby + Streaming replikace Passwordcheck Sloupcové + WHEN triggery Vylepšený VACUUM rychlost PL/pgSQL by default Hstore ( ) vylepšení

PostgreSQL 9.1 Nelogované tabulky Writeable Common Table Expressions SE-Postgres, foreign tables (nyní jen SELECTy) K-nejbližší sousedi: SELECT text_data, similarity(text_data, 'hello') FROM test_trgm WHERE text_data % 'hello' ORDER BY similarity(text_data, 'hello') LIMIT 2; SELECT text_data, text_data <-> 'hello' FROM test_trgm ORDER BY text_data <-> 'hello' LIMIT 2; (https://wiki.postgresql.org/wiki/what%27s_new_in_postgresql_9.1#k-nearestneighbor_indexing)

PostgreSQL 9.2 master Index-only scans Kaskádová replikace slave JSON datový typ Datový typ RANGE slave2 slave3 SP-GiST pro neuniforme distribuovana data Z hstore mizí => operátor

PostgreSQL dat. typ Range =# SELECT '(1000,2000]'::numrange * '[1000,1200]'::numrange;?column? ------------(1000,1200] (1 row) =# SELECT * FROM test_range WHERE period && '[2012-01-03 00:00:00,201201-03 12:00:00]'; period ----------------------------------------------------["2012-01-01 00:00:00+01","2012-03-01 00:00:00+01"] ["2008-01-01 00:00:00+01","2015-01-01 00:00:00+01"] (2 rows) (https://wiki.postgresql.org/wiki/what%27s_new_in_postgresql_9.2#range_types)

PostgreSQL 9.3 JSON je použitelný ( ) Event Triggers na DDL Materializované pohledy Updatovatelné pohledy Zapisovatelné Foreign tables Streaming-Only Remastering a spol. Background workers

PostgreSQL dat. typ JSON CREATE TABLE books ( id integer, data json ); INSERT INTO books VALUES (1, '{ "name": "Book the First", "author": { "first_name": "Bob", "last_name": "White" } }'); INSERT INTO books VALUES (2, '{ "name": "Book the Second", "author": { "first_name": "Charles", "last_name": "Xavier" } }'); SELECT id, data->>'name' AS name FROM books; id name ----+----------------1 Book the First 2 Book the Second Zdroj: http://clarkdave.net/2013/06/what-can-you-do-with-postgresql-andjson/

PostgreSQL 9.4 JSONB (!= BSON) ( ) Obnovení materializovaných pohledů CONCURRENTLY WITH CHECK Rychlost agregate funkcí

Otázky? Honza Horák <hhorak@redhat.com> IRC: hhorak @ freenode http://themindiseverything.eu/ Twiter: @HonzaHorak Slidy jiz ted k dispozici na: http://hhorak.fedorapeople.org/slides/2014-11-02-openalt-db-news.pdf