SlideShare une entreprise Scribd logo
1  sur  50
Still using MySQL?
Maybe you should reconsider
Radu-Sebastian Amarie
Co-Founder @ Softbinator
Head of Engineering @ Findie.me
radu@softbinator.ro
#85
So let’s start!
Data trends. (Data is trending)
“Every 2 days we create as much information
as we did up to 2003”
– Eric Schmidt, Google
Data is more connected.
• Text (content)
• HyperText (added pointers)
• RSS (joined those pointers)
• Blogs (added pingbacks)
• Tagging (grouped related data)
• RDF (described connected data)
• GGG (content + pointers + relationships +
descriptions)
Data is much more
connected.
< Email address
similarity between
users from a
Subscriber list on
Mailchimp
You can read more here:
http://blog.mailchimp.com/digging-deeper-
into-wavelength-and-egp-data-finding-
interest-clusters-in-mailchimps-network/
Data is more Semi-Structured:
Think IMDb
How would you model the data of all the Movies ever
made?
Movies / Details (Title / Description / Storyline) / Cast
(and roles and names and relationship to other
characters) / Crew (positions: Producers / Director /
Director of Photography and 113 other roles) / Plot
Keywords / Taglines / Genres / Motion Picture Ratings
/ Sites / Countries / Countries Filmed In / Languages /
Dates / Budgets / Companies / Credits / Technical
Specs / Trivia / Goofs / Quotes / Reviews / Message
Boards / Ratings / Links to other ratings like
Metascore from MetaCritic / And all the relationships
between all the individual data.
What are the current options?
Top 25 of 275
More info here:
http://db-engines.com/en/ranking
Are any solutions trending?
How do we represent this data?
How do we represent this data?
Relational Database
Graph
DatabaseRelational Database
GOOD FOR:
Well-understood data structures that doesn’t
change too frequently
Known problems involving discrete parts of
the data, or minimal connectivity
GOOD FOR:
Dynamic systems where data topology is difficult to
predict
Dynamic requirements that evolve with the business
Problems where data relationships contribute
meaning & value
How do we represent this data?
So, how do you model a graph?
So, how do you model a graph?
Mihaela loves Cezar
Mihaela loves Cezar
NODE NODE
RELATIONSHIP
LOVES
Relationships are directional
NODE NODE
RELATIONSHIP
LOVES
LOVES
Detailed property graph
LOVES
LOVES
LIVES WITH
name: ”Mihaela”
born: 639878400
twitterID: miky92
name: ”Kim”
born: 622328400
type: “ROTEM K2”
nickname: “Black Panther”
since: 692328400
Labeled property graph
LOVES
LOVES
LIVES WITH
name: ”Mihaela”
born: 639878400
twitterID: miky92
name: ”Kim”
born: 622328400
type: “ROTEM K2”
nickname: “Black Panther”
:Person :Person
:Vechicle:Car since: 692328400
Mapping to language
VERB
VERB
VERB
Adjective
Adjective
Adjective
Adjective
Adjective
Adjective
Adjective
Adjective
:Noun :Noun
:Noun Adjective
What can a GraphDB contain?
NODES:
• The objects in the graph
• Can have key-value properties
• Can be labeled
RELATIONSHIPS:
• Relate Node by type and
direction
• Can have key-value properties
How do you query a graph?
By finding patterns.
Great, but can I draw patterns?
Haha, sure!
How?
Using ASCII ART!!
A --> B --> C; A --> C;
A --> B --> C --> A;
(A) -[:LOVES]->(B)
(a {twitterID: ‘miky92’}) -[:LOVES]->(b)
MATCH
(a {twitterID: ‘miky92’}) -[:LOVES]->(b)
RETURN b;
MATCH
(a {twitterID: ‘miky92’}) -[:LOVES]->(b)
RETURN b.name; //Kim
Relational vs Graph
PICK YOUR JOINS!
MATCH (u:User {id: 1})-[:HAS_SKILL]->(s:Skill) RETURN s
SELECT skills.*, user_skill.*
FROM users
JOIN user_skill ON users.id = user_skill.user_id
JOIN skills ON user_skill.skill_id = skill.id
WHERE users.id = 1
Speed!!
“We found Neo4j to be literally thousands of times faster
than our prior MySQL solution, with queries that require
10 - 100 times less code. Today, Neo4j provides eBay with
functionality that was previously impossible.”
- Volker Pacher, Senior Developer
“Minutes to milliseconds” performance
Queries up to 1000x faster than RDBMS or other NoSQL
TheSameQueryusing
Cypher
MATCH (boss)-[:MANAGES*0..3]->(sub),
(sub)-[:MANAGES*1..3]->(report)
WHERE boss.name = “John Doe”
RETURN sub.name AS Subordinate,
count(report) AS Total
Project Impact
Less time writing queries
• More time understanding the answers
• Leaving time to ask the next question
Less time debugging queries:
• More time writing the next piece of code
• Improved quality of overall code base
Code that’s easier to read:
• Faster ramp-up for new project members
• Improved maintainability &
troubleshooting
Old
Project
Database
Structure
Just a
part…
Blue node is a Movie – Ticker
www. findie.me/ticker
(awesome movie)
MOOREEE!!!!
We’ve (Ștefan actually)
Imported
(:Wikidata)–[:INTO]-> (:Neo4j)
And remade all the relationships for them to make sense.
EXAMPLE:
The universe...
… limited to 500
Real-Time Recommendation
Super simple example:
Sushi restaurants in New York that my friends like
Awesome community support
& Drivers:
.NET / Java / Spring / JavaScript / Python / Ruby / PHP / R / Go / C/C++
Recap
Neo4j is Great.
1. When you have a large social-driven project in which your data topology
is difficult to predict.
2. You data is very interconnected and you need that to get extra meaning
& value.
3. Your application evolves rapidly
4. You want to be fast and write queries easily (Cypher became openCypher
in partnership with Oracle and Spark)
5. You want to be able to get recommendations directly from the Database.
Questions?
Thanks!
Radu-Sebastian Amarie
Co-Founder @ Softbinator
Head of Engineering @ Findie.me
radu@softbinator.ro
Thanks to…
(for inspiration)
• Michael Hunger with http://www.slideshare.net/jexp/geekout-publish
• William Lyon with http://www.slideshare.net/neo4j/intro-to-neo4j-and-graph-
databases
• William Lyon again with http://www.slideshare.net/neo4j/introducing-neo4j-30
• Max de Marzi with http://www.slideshare.net/maxdemarzi/introduction-to-
graph-databases-12735789

Contenu connexe

Tendances (7)

Search Engine Strategies
Search Engine StrategiesSearch Engine Strategies
Search Engine Strategies
 
Google‘s Hummingbird update explained
Google‘s Hummingbird update explainedGoogle‘s Hummingbird update explained
Google‘s Hummingbird update explained
 
Google Hummingbird by Andrew
Google Hummingbird by AndrewGoogle Hummingbird by Andrew
Google Hummingbird by Andrew
 
Google humming bird algorithm
Google humming bird algorithmGoogle humming bird algorithm
Google humming bird algorithm
 
Designing For Your Least Able User
Designing For Your Least Able UserDesigning For Your Least Able User
Designing For Your Least Able User
 
AWS Storage Week - Introduction - Day 2
AWS Storage Week - Introduction - Day 2AWS Storage Week - Introduction - Day 2
AWS Storage Week - Introduction - Day 2
 
How We Make Websites
How We Make WebsitesHow We Make Websites
How We Make Websites
 

Similaire à Still using MySQL? Maybe you should reconsider.

Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
Neo4j
 
Neo4j graphdatabaseforrecommendations-130531021030-phpapp02-converted
Neo4j graphdatabaseforrecommendations-130531021030-phpapp02-convertedNeo4j graphdatabaseforrecommendations-130531021030-phpapp02-converted
Neo4j graphdatabaseforrecommendations-130531021030-phpapp02-converted
snehapandey01
 

Similaire à Still using MySQL? Maybe you should reconsider. (20)

Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & Spark
 
GraphTour Boston - Graphs for AI and ML
GraphTour Boston - Graphs for AI and MLGraphTour Boston - Graphs for AI and ML
GraphTour Boston - Graphs for AI and ML
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
 
Graph Database Use Cases - StampedeCon 2015
Graph Database Use Cases - StampedeCon 2015Graph Database Use Cases - StampedeCon 2015
Graph Database Use Cases - StampedeCon 2015
 
Graph database Use Cases
Graph database Use CasesGraph database Use Cases
Graph database Use Cases
 
01 nosql and multi model database
01   nosql and multi model database01   nosql and multi model database
01 nosql and multi model database
 
Tableau & MongoDB: Visual Analytics at the Speed of Thought
Tableau & MongoDB: Visual Analytics at the Speed of ThoughtTableau & MongoDB: Visual Analytics at the Speed of Thought
Tableau & MongoDB: Visual Analytics at the Speed of Thought
 
SQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsSQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 Questions
 
Graph Databases
Graph DatabasesGraph Databases
Graph Databases
 
Alexis max-Creating a bot experience as good as your user experience - Alexis...
Alexis max-Creating a bot experience as good as your user experience - Alexis...Alexis max-Creating a bot experience as good as your user experience - Alexis...
Alexis max-Creating a bot experience as good as your user experience - Alexis...
 
What to expect when you are visualizing (v.2)
What to expect when you are visualizing (v.2)What to expect when you are visualizing (v.2)
What to expect when you are visualizing (v.2)
 
RDBMS to Graphs
RDBMS to GraphsRDBMS to Graphs
RDBMS to Graphs
 
Introducción a Neo4j
Introducción a Neo4jIntroducción a Neo4j
Introducción a Neo4j
 
Graphs for Ai and ML
Graphs for Ai and MLGraphs for Ai and ML
Graphs for Ai and ML
 
GraphDB
GraphDBGraphDB
GraphDB
 
Neo4j 20 minutes introduction
Neo4j 20 minutes introductionNeo4j 20 minutes introduction
Neo4j 20 minutes introduction
 
How Linked Data Can Speed Information Discovery
How Linked Data Can Speed Information DiscoveryHow Linked Data Can Speed Information Discovery
How Linked Data Can Speed Information Discovery
 
Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...
 
Neo4j graphdatabaseforrecommendations-130531021030-phpapp02-converted
Neo4j graphdatabaseforrecommendations-130531021030-phpapp02-convertedNeo4j graphdatabaseforrecommendations-130531021030-phpapp02-converted
Neo4j graphdatabaseforrecommendations-130531021030-phpapp02-converted
 
vOfficeware Brown Bag - NOSQL
vOfficeware Brown Bag - NOSQLvOfficeware Brown Bag - NOSQL
vOfficeware Brown Bag - NOSQL
 

Dernier

Dernier (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Still using MySQL? Maybe you should reconsider.

Notes de l'éditeur

  1. Or at least the amount of data. lol
  2. Giant Global Graph is a name coined by the inventor of the World Wide Web, Tim Berners-Lee in 2007
  3. Movies Cast, Crew, their categories, their relationships Categories, subcategorize, taxonomies.
  4. Graph Databases. Why is this trending? It’s clearly because it makes life easier to interconnected data, especially to query it. Before January 2014 they launched Cypher in Neo4j 2, than the graph world had a boost.
  5. Key Value Stores (Things like Redis / Rockdb / etc) Simple data model & Scalable but You need to create your own "foreign keys" and it sucks for complex data. Wide Column Family (Things like Cassandra / HBase / HyperTable) Great semi-structure data, naturally indexed and scalable butpoor for interconnected data. Document Data (MongoDb / CouchDB / etc) A collection of documents, documents are key value collections, index-centric, lots of map-reduce Simple, powerful data model and scalable but poor for interconnected data, query model limited to keys and indexes, map reduce for larger queries. Relational (Why do they call it relational. LOL) Great for structured data that does’t change. Scalable. Sucks for connected complex data.
  6. We can give you access here, after the presentation 
  7. 25GB :scream: