MySQLI Vs PDO_MySQL Comparison

mysqli_vs_pdomsql

Currently recommended to use either the mysqli or PDO_MySQL extensions. It is not recommended to use the old mysql extension for new development, as it was deprecated in PHP 5.5.0 and was removed in PHP 7.

Features MySQLI Extention PDO_MySQL
PHP version introduced 5 5.1
Development status Active Active
Lifecycle Active Active
Recommended for new projects Yes Yes
OOP Interface Yes Yes
Procedural Interface Yes No
Persistent Connections Yes Yes
API supports Charsets Yes Yes
API supports server-side Prepared Statements Yes Yes
API supports client-side Prepared Statements No Yes
API supports Stored Procedures Yes Yes
API supports Multiple Statements Yes Yes
API supports Transactions Yes Yes
Transactions can be controlled with SQL Yes Yes
Supports all MySQL 5.1+ functionality Yes Mostly

More Information

Advertisements

InnoDB Storage Engine | MySQL Storage Engine

mysql_storage_engine_innodb

InnoDB is a high-reliability and high-performance storage engine

The InnoDB storage engine maintains its own buffer area for caching data and indexes in main memory. InnoDB stores its tables and indexes in a table-space, which may consist of several files (or raw disk partitions). This is different from when compared to MyISAM tables where each table is stored using separate files.

InnoDB Supports :

  • ACID Model (Atomicity,  Consistency, Isolation, and Durability)
    • Atomicity – Transaction Commits, when all the changes are succeed. Transaction Rollback, when all the changes are undone.
    • Consistency – The database remains in a consistent state at all times (before & after transactions)
    • Isolation – Transactions do not interfere with each others, when other transaction in progress.
    • Durability – InnoDB protect the data from crashes & any other danger. It can be achieve through double buffer.
  • Row-Level Locking
    • The system of protecting a transaction from seeing or changing data that is being queried or changed by other transactions.
  • Foreign Key
    • The foreign key relationship is defined on one column in both the parent table and the child table.
    • If a row is deleted or its foreign key value changed, and rows in another table point to that foreign key value, the foreign key can be set up to prevent the deletion, cause the corresponding column values in the other table to become null, or automatically delete the corresponding rows in the other table.
  • FULLTEXT index
    • The special kind of index that holds the search index in the MySQL full-text search mechanism. Represents the words from values of a column, omitting any that are specified as stopwords.
    • Available only @ MySQL 5.6.4 or Above

Types of NoSQL Databases

NoSQL Database

A NoSQL (originally referring to “non SQL” or “non relational”) database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed since the late 1960s, but did not obtain the “NoSQL” moniker until a surge of popularity in the early twenty-first century, triggered by the needs of Web 2.0 companies such as Facebook, Google and Amazon.com.

The data structures used by NoSQL databases (e.g. key-value, graph, or document) differ slightly from those used by default in relational databases, making some operations faster in NoSQL and others faster in relational databases. NoSQL databases are increasingly used in big data and real-time web applications. NoSQL systems are also sometimes called “Not only SQL” to emphasize that they may support SQL-like query languages.

Types of NoSQL databases:

There are different approaches to classify NoSQL databases, classification based on data model.

Column:
Accumulo, Cassandra, Druid, HBase, Vertica

Document:
Clusterpoint, Apache CouchDB, Couchbase, DocumentDB, HyperDex, Lotus Notes, MarkLogic, MongoDB, OrientDB, Qizx

Key-value:
CouchDB, Oracle NoSQL Database, Dynamo, FoundationDB, HyperDex, MemcacheDB, Redis, Riak, FairCom c-treeACE, Aerospike, OrientDB, MUMPS

Graph:
Allegro, Neo4J, InfiniteGraph, OrientDB, Virtuoso, Stardog

Multi-model:
OrientDB, FoundationDB, ArangoDB, Alchemy Database, CortexDB, MarkLogic

References : Wikipedia