SlideShare uma empresa Scribd logo
1 de 68
Baixar para ler offline
Slow	database	in	your	PHP	stack?
Don’t	blame	the	DBA!
harald.zeitlhofer@dynatrace.com
@HZeitlhofer
Harald	Zeitlhofer	– who's	that?
• Technology	Strategist	at	Dynatrace
• Database	and	Web	Development
• Father	of	2	
• Love	climbing,	music,	cooking,	photography
• Love	to	discover	new	things
PHP	and	databases
• Connectivity
• Abstraction	Layers
• Caching
• Access	Patterns
• Performance
->	Relational	SQL	databases
Connectivity	via	DB	extensions
• mysql (deprecated	in	5.5,	removed	in	7.0)
• mysqli
• oracle
• PDO
• …
Connectivity	via	ORM	layer
• Object	Relational	Mapper
• Doctrine
• Propel,	RedBeanPHP,	Spot
• Complete	abstraction	of	persistence	layer
• Caching
• Limited	flexibility
Let	the	blame	game	start!
Web	Server Application	Server Database
DEV Team DBA Team
Blame the database for
all performance issues
Blame the SW/HW or
system administrators
Network?
function roomReservationReport($room) {
$reservations = loadDataForRoom($room->id);
generateReport($room, $reservations);
}
Slow	Report
function roomReservationReport($room) {
$tstart = microtime(true);
$reservations = loadDataForRoom($room->id);
$dataLoadTime = microtime(true) - $tstart;
generateReport($room, $reservations);
}
DEV	team	add	log	output
45s
DEV	team	result
<	1ms
DBA	team	looks	at	DB	stats	per	query
Excessive	SQL:	24889!
Calls	to	Database
Database	Heavy:	
66.51%	(40.27s)	
Time	Spent	in	SQL	Execs
Database	Performance	Hotspots
Application Design Database Infrastructure
http://apmblog.dynatrace.com/2015/06/25/when-old-jira-tickets-killed-our-productivityuser-experience/
Too	many	database	queries
Entity	Framework	lazy	loading
$schools = new SchoolEntities();
foreach ($schools as $school) {
foreach ($school->departments as $department) {
foreach ($department->courses as $course) {
echo $department->name . ": " . $course->title);
}
}
}
N+1	problem
• 10	schools
• 20	departments	per	school
• 50	curses	per	department
=>	10	x	20	x	50	=	10001	single	database	statements	!!!
Use	a	JOIN	query
$rows = $db->query ("
select department.name as department, course.title as course
from school
join department on school_id = school.id
join course on department_id = department.id
");
foreach ($rows as $row) {
echo $row->department . ": " . $row->course);
}
=>	ONE	database	statement	!!!
Traditional	code
$author_id = get_author_id( 'Jack London' );
$books = get_books( $author_id );
foreach ($books as $book_id) {
$book = get_book( $book_id );
var_dump( $book );
}
=>	N+1	Problem	!!!
Traditional	code
function get_author_id( $name ){
global $db;
$res = $db->query( "SELECT id FROM authors WHERE name=?", array( $name ) );
$id = null;
while( $res->fetchInto( $row ) ) { $id = $row[0]; }
return $id;
}
function get_books( $id ){
global $db;
$res = $db->query( "SELECT id FROM books WHERE author_id=?", array( $id ) );
$ids = array();
while( $res->fetchInto( $row ) ) { $ids []= $row[0]; }
return $ids;
}
function get_book( $id ){
global $db;
$res = $db->query( "SELECT * FROM books WHERE id=?", array( $id ) );
while( $res->fetchInto( $row ) ) { return $row; }
return null;
}
=>	N+1	Problem	!!!
Retrieving	too	many	records
Retrieving	too	many	records
$schools = new SchoolEntities();
foreach ($schools->departments as $department) {
foreach ($department->courses as $course) {
if ($course->category == "SQL" &&
$course->level == "expert")) {
echo $department->name . ": " . $course->title);
}
}
}
=>	3	records,	still	10001	queries
Use	a	JOIN	query
$rows = $db->query ("
select department.name as department, course.title as course
from school
join department on school_id = school.id
join course on department_id = department.id
where course.category = 'SQL' and course.level = 'expert'
");
foreach ($rows as $row) {
echo $department . ": " . $course);
}
=>	ONE	database	statement	!!!
Reduce	the	number	of	queries
Reduce	the	amount	of	data	retrieved
Profile	the	generated	queries!
I'm	a	developer	for	business	
logic!	I	don't	have	to	
understand	what	the	
database	does	and	I	do	not	
care	at	all!
I'm	a	developer	for	business	
logic!	My	code	can	be	much	
more	efficient	if	I	understand	
what	the	database	does	and	
how	it	works!
Make	developers	self-sufficient
Make	developers	self-sufficient
Make	developers	self-sufficient
Slow	Single	SQL	query	–
tuning/indexing	might	be	required
Make	developers	self-sufficient
Indexes
Indexes	are	data	structures	for	
referencing	a	search	value	(in	an	
indexed	column)	to	a	row	in	the	
target	table
Indexes	are	used	to	find	records	in	a	
table	when	a	where	clause	is	used
Indexes	are	also	used	to	join	tables	in	
a	query,	where	multiple	tables	are	
used
Index	Killer
where	…	in	(…)
Better
• Join	tables
• Use	where	exists	(…)
What’s	the	overall	Execution	
Time	of	different	SQL	Types	
(SELECT,	INSERT,	DELETE,	…)
Indexing	– Read	v/s	Write
Analyzing	SQLs	by	Type	(SELECT,	INSERT,	
UPDATE,DELETE)	
Which	Types	take	how	long?	When	do	you	have	spikes?
When	do	we	see	#	of	SQL	spikes?	Spikes	related	to	
INSERT,	UPDATE,	DELETE?	Any	job	running?
Different	databases	
for	read	and	write???
Different	databases	for	read	and	write
• Data	Warehouse
• Document	oriented	NoSQL
• Separate	logic	for	data	transfer	needed
Useful	commands	in	MySQL
explain select ...
show indexes for table_name
Caching
Application	Data	Cache
• Caching	layer	inside	the	application
• Application	logic	required	to	get	data	from	and	store	in	cache
MySQL	Query	Cache
• Caches	query	results	in	memory
Oracle	SQL	Cache
• Oracle	SQL	cache	stores	the	execution	plan	for	a	SQL	statement
• Even	different	plans	a	stored	for	different	bind	variable	values
• No	parsing	required
• Parsing	is	the	most	CPU	consuming	process
• Cache	key	is	full	SQL	query	text
Oracle	SQL	Cache
<?php
$db = new PDO('oci:dbname=sid', 'username', 'password');
$data = Array();
$data[] = $db->query("select * from country where code = 'AT'");
$data[] = $db->query("select * from country where code = 'AU'");
$data[] = $db->query("select * from country where code = 'NZ'");
$data[] = $db->query("select * from country where code = 'ES'");
?>
Oracle	SQL	Cache
<?php
$db = new PDO('oci:dbname=sid', 'username', 'password');
$data = Array();
$ps = $db->prepare("select * from emp where code = :code");
$data[] = $ps->exec(array("code" => "AT"));
$data[] = $ps->exec(array("code" => "AU"));
$data[] = $ps->exec(array("code" => "NZ"));
$data[] = $ps->exec(array("code" => "ES"));
?>
Database	Health
Horizontally	scaled	environments
Performance	problem	after	upscaling
Database	Access
• Size	server	(cluster)	appropriately	for	maximum	number	of	connected	
instances
• Reduce	connections
• Reduce	SQL	statements
• Leverage	caching
Working	together,	looking	at	the	same	data
Web	Server Application	Server Database
Takeaways
• Much	time	spent	in	database	does	not	necessarily	mean	database	is	slow!
• Performance	hotspots
• Too	many	SQL	statements
• Missing	caching
• Bad	query	design
• Index	(mis)usage
• Undersized	database	server
• Let	developers	know	what’s	happening	in	the	database
• The	DBA	is	our	friend!
Harald	Zeitlhofer
Performance	Advocate
@HZeitlhofer
harald.zeitlhofer@dynatrace.com
http://blog.dynatrace.com
Dynatrace	Free	Trial
Free	Personal	License
http://bit.ly/monitoring-2016

Mais conteúdo relacionado

Mais procurados

(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014Amazon Web Services
 
High Performance Hibernate JavaZone 2016
High Performance Hibernate JavaZone 2016High Performance Hibernate JavaZone 2016
High Performance Hibernate JavaZone 2016Vlad Mihalcea
 
Caching basics in PHP
Caching basics in PHPCaching basics in PHP
Caching basics in PHPAnis Ahmad
 
Scaling in Mind (Case study of Drupal Core)
Scaling in Mind (Case study of Drupal Core)Scaling in Mind (Case study of Drupal Core)
Scaling in Mind (Case study of Drupal Core)jimyhuang
 
Hive Quick Start Tutorial
Hive Quick Start TutorialHive Quick Start Tutorial
Hive Quick Start TutorialCarl Steinbach
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalabilityWim Godden
 
Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached
Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached
Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached georgepenkov
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
Redis in Practice: Scenarios, Performance and Practice with PHP
Redis in Practice: Scenarios, Performance and Practice with PHPRedis in Practice: Scenarios, Performance and Practice with PHP
Redis in Practice: Scenarios, Performance and Practice with PHPChen Huang
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataGruter
 
SQL Track: Restoring databases with powershell
SQL Track: Restoring databases with powershellSQL Track: Restoring databases with powershell
SQL Track: Restoring databases with powershellITProceed
 
eZ Publish Cluster Unleashed
eZ Publish Cluster UnleashedeZ Publish Cluster Unleashed
eZ Publish Cluster UnleashedBertrand Dunogier
 
High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016Vlad Mihalcea
 
Oozie or Easy: Managing Hadoop Workloads the EASY Way
Oozie or Easy: Managing Hadoop Workloads the EASY WayOozie or Easy: Managing Hadoop Workloads the EASY Way
Oozie or Easy: Managing Hadoop Workloads the EASY WayDataWorks Summit
 
Amp and higher computing science
Amp and higher computing scienceAmp and higher computing science
Amp and higher computing scienceCharlie Love
 

Mais procurados (18)

(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
 
Sqoop
SqoopSqoop
Sqoop
 
High Performance Hibernate JavaZone 2016
High Performance Hibernate JavaZone 2016High Performance Hibernate JavaZone 2016
High Performance Hibernate JavaZone 2016
 
Caching basics in PHP
Caching basics in PHPCaching basics in PHP
Caching basics in PHP
 
In Memory OLTP
In Memory OLTP In Memory OLTP
In Memory OLTP
 
Scaling in Mind (Case study of Drupal Core)
Scaling in Mind (Case study of Drupal Core)Scaling in Mind (Case study of Drupal Core)
Scaling in Mind (Case study of Drupal Core)
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
Hive Quick Start Tutorial
Hive Quick Start TutorialHive Quick Start Tutorial
Hive Quick Start Tutorial
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached
Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached
Saving The World From Guaranteed APOCALYPSE* Using Varnish and Memcached
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
Redis in Practice: Scenarios, Performance and Practice with PHP
Redis in Practice: Scenarios, Performance and Practice with PHPRedis in Practice: Scenarios, Performance and Practice with PHP
Redis in Practice: Scenarios, Performance and Practice with PHP
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big Data
 
SQL Track: Restoring databases with powershell
SQL Track: Restoring databases with powershellSQL Track: Restoring databases with powershell
SQL Track: Restoring databases with powershell
 
eZ Publish Cluster Unleashed
eZ Publish Cluster UnleashedeZ Publish Cluster Unleashed
eZ Publish Cluster Unleashed
 
High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016
 
Oozie or Easy: Managing Hadoop Workloads the EASY Way
Oozie or Easy: Managing Hadoop Workloads the EASY WayOozie or Easy: Managing Hadoop Workloads the EASY Way
Oozie or Easy: Managing Hadoop Workloads the EASY Way
 
Amp and higher computing science
Amp and higher computing scienceAmp and higher computing science
Amp and higher computing science
 

Destaque

2016 Holiday Retail Tech Recap
2016 Holiday Retail Tech Recap2016 Holiday Retail Tech Recap
2016 Holiday Retail Tech RecapDynatrace
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsDynatrace
 
Finding the Time to be Active in the Library Classroom
Finding the Time to be Active in the Library ClassroomFinding the Time to be Active in the Library Classroom
Finding the Time to be Active in the Library ClassroomLucinda Rush
 
2014.07.24 экономическое обозрение за 2013 год - финал
2014.07.24   экономическое обозрение за 2013 год - финал2014.07.24   экономическое обозрение за 2013 год - финал
2014.07.24 экономическое обозрение за 2013 год - финалAnastasia Vinogradova
 
Real World Roslyn
Real World RoslynReal World Roslyn
Real World RoslynJb Evain
 
沃草發言人,林祖儀《選舉與網路技術論壇》
沃草發言人,林祖儀《選舉與網路技術論壇》沃草發言人,林祖儀《選舉與網路技術論壇》
沃草發言人,林祖儀《選舉與網路技術論壇》PunNode 科技創業新聞網
 
LAND POLICIES, TITLING SCHEMES AND THE LEGAL REFORM PROCESS IN TIMOR-LESTE
LAND POLICIES, TITLING SCHEMES AND  THE LEGAL REFORM PROCESS IN TIMOR-LESTELAND POLICIES, TITLING SCHEMES AND  THE LEGAL REFORM PROCESS IN TIMOR-LESTE
LAND POLICIES, TITLING SCHEMES AND THE LEGAL REFORM PROCESS IN TIMOR-LESTEUNDP in Asia and the Pacific
 
Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016
Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016
Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016Anastasia Vinogradova
 
финансовый рынок _09(1)
финансовый рынок _09(1)финансовый рынок _09(1)
финансовый рынок _09(1)Anastasia Vinogradova
 
PunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚ
PunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚPunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚ
PunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚPunNode 科技創業新聞網
 

Destaque (15)

Scaling PHP web apps
Scaling PHP web appsScaling PHP web apps
Scaling PHP web apps
 
2016 Holiday Retail Tech Recap
2016 Holiday Retail Tech Recap2016 Holiday Retail Tech Recap
2016 Holiday Retail Tech Recap
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
Finding the Time to be Active in the Library Classroom
Finding the Time to be Active in the Library ClassroomFinding the Time to be Active in the Library Classroom
Finding the Time to be Active in the Library Classroom
 
Презентация IRM businessDoc Королевой С.М.
Презентация IRM businessDoc Королевой С.М.Презентация IRM businessDoc Королевой С.М.
Презентация IRM businessDoc Королевой С.М.
 
2014.07.24 экономическое обозрение за 2013 год - финал
2014.07.24   экономическое обозрение за 2013 год - финал2014.07.24   экономическое обозрение за 2013 год - финал
2014.07.24 экономическое обозрение за 2013 год - финал
 
Kings Boston On Campus
Kings Boston On CampusKings Boston On Campus
Kings Boston On Campus
 
Real World Roslyn
Real World RoslynReal World Roslyn
Real World Roslyn
 
La dança classica
La dança classicaLa dança classica
La dança classica
 
沃草發言人,林祖儀《選舉與網路技術論壇》
沃草發言人,林祖儀《選舉與網路技術論壇》沃草發言人,林祖儀《選舉與網路技術論壇》
沃草發言人,林祖儀《選舉與網路技術論壇》
 
Брошюра в печать 2015
Брошюра в печать 2015Брошюра в печать 2015
Брошюра в печать 2015
 
LAND POLICIES, TITLING SCHEMES AND THE LEGAL REFORM PROCESS IN TIMOR-LESTE
LAND POLICIES, TITLING SCHEMES AND  THE LEGAL REFORM PROCESS IN TIMOR-LESTELAND POLICIES, TITLING SCHEMES AND  THE LEGAL REFORM PROCESS IN TIMOR-LESTE
LAND POLICIES, TITLING SCHEMES AND THE LEGAL REFORM PROCESS IN TIMOR-LESTE
 
Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016
Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016
Ежемесячный обзор финансового рынка России по состоянию на 01.03.2016
 
финансовый рынок _09(1)
финансовый рынок _09(1)финансовый рынок _09(1)
финансовый рынок _09(1)
 
PunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚ
PunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚPunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚ
PunProbe 磅礡《解剖阿里巴巴的心臟:細讀中國淘寶》——陳小ㄚ
 

Semelhante a PHP and databases

How to Troubleshoot & Optimize Database Query Performance for Your Application
How to Troubleshoot  & Optimize Database Query Performance for Your ApplicationHow to Troubleshoot  & Optimize Database Query Performance for Your Application
How to Troubleshoot & Optimize Database Query Performance for Your ApplicationDynatrace
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redisjimbojsb
 
Advanced Php - Macq Electronique 2010
Advanced Php - Macq Electronique 2010Advanced Php - Macq Electronique 2010
Advanced Php - Macq Electronique 2010Michelangelo van Dam
 
Drupal - dbtng 25th Anniversary Edition
Drupal - dbtng 25th Anniversary EditionDrupal - dbtng 25th Anniversary Edition
Drupal - dbtng 25th Anniversary Editionddiers
 
第49回Php勉強会@関東 Datasource
第49回Php勉強会@関東 Datasource第49回Php勉強会@関東 Datasource
第49回Php勉強会@関東 DatasourceKaz Watanabe
 
Object Relational Mapping in PHP
Object Relational Mapping in PHPObject Relational Mapping in PHP
Object Relational Mapping in PHPRob Knight
 
Drupal II: The SQL
Drupal II: The SQLDrupal II: The SQL
Drupal II: The SQLddiers
 
MYSQL Query Anti-Patterns That Can Be Moved to Sphinx
MYSQL Query Anti-Patterns That Can Be Moved to SphinxMYSQL Query Anti-Patterns That Can Be Moved to Sphinx
MYSQL Query Anti-Patterns That Can Be Moved to SphinxPythian
 
Scaling Databases with DBIx::Router
Scaling Databases with DBIx::RouterScaling Databases with DBIx::Router
Scaling Databases with DBIx::RouterPerrin Harkins
 
Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Mohd Harris Ahmad Jaal
 
PHP and MySQL.pptx
PHP and MySQL.pptxPHP and MySQL.pptx
PHP and MySQL.pptxnatesanp1234
 
Emerging technologies /frameworks in Big Data
Emerging technologies /frameworks in Big DataEmerging technologies /frameworks in Big Data
Emerging technologies /frameworks in Big DataRahul Jain
 
Practical PHP 5.3
Practical PHP 5.3Practical PHP 5.3
Practical PHP 5.3Nate Abele
 
SPL: The Undiscovered Library - DataStructures
SPL: The Undiscovered Library -  DataStructuresSPL: The Undiscovered Library -  DataStructures
SPL: The Undiscovered Library - DataStructuresMark Baker
 
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...Puppet
 

Semelhante a PHP and databases (20)

How to Troubleshoot & Optimize Database Query Performance for Your Application
How to Troubleshoot  & Optimize Database Query Performance for Your ApplicationHow to Troubleshoot  & Optimize Database Query Performance for Your Application
How to Troubleshoot & Optimize Database Query Performance for Your Application
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redis
 
MYSQL - PHP Database Connectivity
MYSQL - PHP Database ConnectivityMYSQL - PHP Database Connectivity
MYSQL - PHP Database Connectivity
 
Advanced Php - Macq Electronique 2010
Advanced Php - Macq Electronique 2010Advanced Php - Macq Electronique 2010
Advanced Php - Macq Electronique 2010
 
Drupal - dbtng 25th Anniversary Edition
Drupal - dbtng 25th Anniversary EditionDrupal - dbtng 25th Anniversary Edition
Drupal - dbtng 25th Anniversary Edition
 
第49回Php勉強会@関東 Datasource
第49回Php勉強会@関東 Datasource第49回Php勉強会@関東 Datasource
第49回Php勉強会@関東 Datasource
 
Object Relational Mapping in PHP
Object Relational Mapping in PHPObject Relational Mapping in PHP
Object Relational Mapping in PHP
 
Drupal II: The SQL
Drupal II: The SQLDrupal II: The SQL
Drupal II: The SQL
 
Php summary
Php summaryPhp summary
Php summary
 
NoSQL & JSON
NoSQL & JSONNoSQL & JSON
NoSQL & JSON
 
MYSQL Query Anti-Patterns That Can Be Moved to Sphinx
MYSQL Query Anti-Patterns That Can Be Moved to SphinxMYSQL Query Anti-Patterns That Can Be Moved to Sphinx
MYSQL Query Anti-Patterns That Can Be Moved to Sphinx
 
Scaling Databases with DBIx::Router
Scaling Databases with DBIx::RouterScaling Databases with DBIx::Router
Scaling Databases with DBIx::Router
 
Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7
 
PHP and MySQL.pptx
PHP and MySQL.pptxPHP and MySQL.pptx
PHP and MySQL.pptx
 
Emerging technologies /frameworks in Big Data
Emerging technologies /frameworks in Big DataEmerging technologies /frameworks in Big Data
Emerging technologies /frameworks in Big Data
 
Shark
SharkShark
Shark
 
PHP-04-Arrays.ppt
PHP-04-Arrays.pptPHP-04-Arrays.ppt
PHP-04-Arrays.ppt
 
Practical PHP 5.3
Practical PHP 5.3Practical PHP 5.3
Practical PHP 5.3
 
SPL: The Undiscovered Library - DataStructures
SPL: The Undiscovered Library -  DataStructuresSPL: The Undiscovered Library -  DataStructures
SPL: The Undiscovered Library - DataStructures
 
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
 

Mais de Harald Zeitlhofer

PHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on NginxPHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on NginxHarald Zeitlhofer
 
Running PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnRunning PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnHarald Zeitlhofer
 
PHP App Performance / Sydney PHP
PHP App Performance / Sydney PHPPHP App Performance / Sydney PHP
PHP App Performance / Sydney PHPHarald Zeitlhofer
 
Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceHarald Zeitlhofer
 
Nginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixNginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixHarald Zeitlhofer
 
Performance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious businessPerformance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious businessHarald Zeitlhofer
 

Mais de Harald Zeitlhofer (12)

Improve Magento Performance
Improve Magento PerformanceImprove Magento Performance
Improve Magento Performance
 
PHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on NginxPHP conference Berlin 2015: running PHP on Nginx
PHP conference Berlin 2015: running PHP on Nginx
 
Running PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnRunning PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtn
 
PHP App Performance / Sydney PHP
PHP App Performance / Sydney PHPPHP App Performance / Sydney PHP
PHP App Performance / Sydney PHP
 
Running PHP on nginx
Running PHP on nginxRunning PHP on nginx
Running PHP on nginx
 
PHP application performance
PHP application performancePHP application performance
PHP application performance
 
PHP Application Performance
PHP Application PerformancePHP Application Performance
PHP Application Performance
 
Running php on nginx
Running php on nginxRunning php on nginx
Running php on nginx
 
Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with Dynatrace
 
Nginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixNginx, PHP, Apache and Spelix
Nginx, PHP, Apache and Spelix
 
Nginx, PHP and Node.js
Nginx, PHP and Node.jsNginx, PHP and Node.js
Nginx, PHP and Node.js
 
Performance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious businessPerformance optimisation - scaling a hobby project to serious business
Performance optimisation - scaling a hobby project to serious business
 

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

PHP and databases