Archivio - DataBase - MyISAM - InnoDB

Differenze tra MyISAM e InnoDB

Uno dei primi passaggi nell’ottimizzazione di portali di una “certa età”, realizzati con WordPress, è andare a verificare il corretto funzionamento del DataBase.

Infatti, molti siti utilizzano ancora il motore di archiviazione MyISAM nel loro database invece del più performante InnoDB. Ma cosa comporta utilizzare un storage engine rispetto ad un altro? Vediamo insieme in questo breve articolo.

MyISAM e InnoDB cosa sono

MyISAM e InnoDB sono due motori per il salvataggio di dati per MySQL (un relational database management system – RDBMS).

MyISAM: le caratteristiche

MyISAM è stato lo storage engine predefinito in MySQL dalla sua introduzione (versione 3.23) fino alla versione 5.5.

MyISAM utilizza la struttura ISAM e deriva da un tipo più vecchio, oggi non più utilizzato, che si chiamava appunto ISAM.

È estremamente veloce e richiede poche risorse sia in termini di memoria RAM che in termini di spazio su disco. Il suo limite principale rispetto ad alcuni altri SE (Storage Engine) consiste nel mancato supporto delle transazioni.

Le tabelle di tipo MyISAM si compongono di 3 file con estensioni .frm, .MYD e .MIY. Il primo file contiene la struttura della tabella, il secondo i dati e il terzo gli indici.

Per trasferire una tabella da una macchina ad un’altra è sufficiente spostare questi 3 file.

InnoDB: le caratteristiche

InnoDB è uno storage engine molto più completo rispetto ad MyISAM. Tra le caratteristiche principali vi sono le foreign key e la transazionalità, con le quali è possibile creare una base di dati relazionale e transazionale.

Per trasferire questo tipo di tabelle da un server ad un altro non è sufficiente spostarne i file e questo rende più complicate le procedure di backup.

Differenze tra InnoDB e MyISAM

Vediamo in cosa si differenzia questi due motori per il salvataggio dei dati, InnoDB e MyISAM ovviamente:

  • per riparare una tabella dopo un crash del sistema, InnoDB riesegue le ultime istruzioni registrate nei log. MyISAM deve invece eseguire una scansione completa della tabella per poi ripararla, ed eventualmente ricostruire gli indici. Di conseguenza, il tempo impiegato da InnoDB per la riparazione non aumenta con il crescere dei dati contenuti nella tabella, mentre il tempo impiegato da MyISAM è proporzionale alle dimensioni della tabella.
  • InnoDB ha una sua propria gestione della cache. Le pagine di dati modificate non vengono inviate immediatamente al sistema e questo, in alcuni casi, può rendere la modifica dei dati molto più rapida con InnoDB.
  • MyISAM generalmente immagazzina i record di una tabella nell’ordine in cui sono stati creati, mentre InnoDB li immagazzina nell’ordine seguito dalla chiave primaria. Quando viene utilizzata la chiave per la lettura di una riga, l’operazione avviene più rapidamente.
  • InnoDB comprime i record molto meno rispetto a MyISAM. Questo significa che la memoria e lo spazio su disco richiesti da InnoDB sono maggiori, nonostante nella versione 5 di MySQL lo spazio su disco richiesto sia diminuito del 20%.

Ne risulta quindi che è molto più affidabile rispetto a MyISAM.

Stai utilizzando MyISAM o InnoDB?

Se stai usando una versione di WordPress abbastanza nuova, è probabile che stai già adoperando il motore di archiviazione MySQL di InnoDB.

Se il tuo sito ha un po’ di anni potresti avere tabelle MyISAM e InnoDB miste e abbinate. In questo caso potresti vedere dei miglioramenti convertendole tutte.

Contattaci per scoprire i nostri piani di manutenzione per i siti internet. Scopri perchè è importante fare una adeguata manutenzione al proprio sito internet leggendo il nostro articolo Importanza della manutenzione di un sito internet

VPS - Virtual Private Server

Che cos’è un VPS – Virtual Private Server

Chiunque abbia a che fare con i siti web a livello professionale sa che per poter andare online e continuare a far funzionare il portale ha bisogno di utilizzare dello spazio e delle risorse di un server.

Esistono differenti soluzioni per essere on-line, diverse tipologie di server e di servizi di hosting e oggi parleremo di VPS. Ma cosa vuol dire questa sigla?

Cos’è un VPS

VPS è l’acronimo di Virtual Private Server ed è una tipologia di hosting che prevede che un server fisico venga suddiviso virtualmente (tramite un hypervisor) in più “ambienti privati”. Ognuno di questi ambienti è quindi dedicato interamente ad un singolo utente/azienda, che può utilizzarne a pieno le risorse messe a disposizione per quell’ambiente (RAM, CPU e spazio di archiviazione).

Si tratta di un hosting adatto a chi ha esigenze particolari – tipiche di un server dedicato – ma non vuole rinunciare alla convenienza di una soluzione condivisa.

A cosa serve

Il compito di un Virtual Private Server è di ospitare tutto quello che è necessario per un progetto web ma potendo gestire il tutto come se si avesse a disposizione un server dedicato.

Si ha quindi la possibilità di configurare il tutto come meglio si crede per poter sfruttare a pieno le risorse messe a disposizione. Si ha un ambiente separato, un proprio indirizzo IP, e risorse in termini di RAM, CPU e storage.

Come funziona

In un hosting condiviso un server ospita al suo interno i file di più portali web appartenenti ad utenze differenti. Quindi le risorse del server e la larghezza di banda vengono segmentate tra tutti i portali che utilizzano quel server.

Si tratta di una delle soluzioni di hosting più economiche, ma che di contro fornisce un controllo sulle impostazioni del server molto basso e risorse di per se molto limitate.

Utilizzando invece un VPS i costi sono molto più elevati ma si ha anche un livello di performance unico. Possiamo quasi dire che un VPS è una via di mezzo tra un hosting condiviso e un vero e proprio server dedicato. In un Virtual Private Server un apposito software riesce a virtualizzare ciò che serve mettendo a disposizione tutte le risorse necessarie senza perdere le qualità tipiche di un server fisico.

A chi conviene

L’utilizzo di un VPS è preferibile quando il progetto web necessita risorse e una struttura personalizzata che un hosting condiviso difficilmente riesce a dare. Si tratta di una soluzione ottimale per imprese di medie dimensioni, per siti di e-commerce, per chi deve ospitare più siti, per chi vuole gestire applicazioni che utilizzano un livello elevato di risorse (ad es. CRM, applicazioni aziendali o finanziarie), e per chi vuole configurare e controllare autonomamente un proprio server.

Vantaggi

Un VPS è una soluzione che fornisce maggiore potenza, personalizzazione e controllo rispetto ad un hosting condiviso con un costo inferiore rispetto ad un server dedicato.
In più a livello di sicurezza a differenza di un hosting condiviso dove è possibile che un errore di configurazione o un attacco malware finiscano per danneggiare anche gli altri siti presenti sul server, nel caso del VPS questo pericolo non si presenta poiché ogni VPS ha un proprio sistema operativo indipendente.

Altro elemento che non va sottovalutato e la scalabilità. Ovvero, quando ci si rende conto che è necessario avere più risorse è sempre possibile chiedere un upgrade al proprio hosting.

Svantaggi

A differenza di un hosting condiviso, dove il lavoro di amministrazione di sistema viene svolto dai tecnici del hosting, un VPS richiede delle buone competenze informatiche per essere gestito. È indicato quindi sviluppatori e amministratori di sistema che hanno esperienza nella gestione di un server.

È anche possibile trovare soluzione VPS che mettono a disposizione tecnici qualificati per la gestione ma, ovviamente, i costi risulteranno essere più alti di un VPS autogestito.

Come scegliere un Virtual Private Server

Quali sono gli aspetti da prendere in considerazione nella scelta di un VPS? Vediamo brevemente, senza entrare nei dettagli tecnici, quali sono:

Assistenza clienti

Potrà sembrare stano ma forse è il punto più importante, l’efficacia dell’assistenza clienti non va trascurata in nessun caso. Avere un hosting provider che garantisce interventi tempestivi in caso di problemi H24 – 365/365 (ovvero tutto l’anno a qualsiasi ora del giorno) è importante. Anche se solitamente un VPS è affidabile, stabile e sicuro, non significa che non ci possano essere malfunzionamenti, rallentamenti o cadute del sito.
Bisogna sempre accertarsi che il piano hosting VPS che si acquista comprenda anche un rapido ed efficace servizio di assistenza ai clienti.

Ambiente Linux o Windows

Entrambi i OS (Operating System – Sistema operativo) sono caratterizzati da facilità d’uso, velocità e stabilità. Windows, come è facile intuire, garantisce la perfetta integrazione con soluzioni Microsoft; Linux, oltre alle proprie distribuzioni, offre tante applicazioni, software e CMS gratuiti (WordPress, Prestashop, Drupal, etc).

Windows è perfetto per chi vuole utilizzare linguaggi di programmazione quali Asp, Asp.net o PHP. Linux, invece, viene utilizzato soprattutto per creare siti dinamici, con linguaggio PHP.

Gestione IT del server inclusa

Solitamente i provider offrono la gestione, più o meno avanzata, di molti aspetti di un VPS. Se si hanno abbastanza conosSe dunque hai le capacità di gestire da te il server virtuale privato, avrai la possibilità di personalizzarlo come desideri, scalando le funzioni, le risorse e installando le applicazioni più adatte al sito. Se invece vuoi essere “accompagnato” nella gestione del server, puoi scegliere di farti aiutare dall’hosting provider nel controllo dello stesso, scegliendo un pacchetto VPS preconfigurato.

Ridondanza e scalabilità

In informatica, la ridondanza è la capacità di un sistema di duplicare le funzionalità in modo da garantire continuità di servizio. Scegliere un piano hosting VPS che offra ridondanza ti permette di ridurre l’eventualità di malfunzionamenti, rallentamenti o, ipotesi peggiore, che il sito vada offline.

Come già precedentemente detto alcuni piani hosting VPS, inoltre, consentono di scalare il servizio a seconda dei bisogni. Ciò è molto utile perchè è possibile aggiungere funzionalità e applicazioni solo quando effettivamente servono.

Cloud o convenzionale

Diversi web hosting provider propongono soluzioni VPS basate sul cloud, ovvero ospitati in infrastrutture cloud invece che su server fisico. Il cloud hosting si basa su un cluster di server virtuali: ciò significa avere meno problemi, più continuità di servizio, meno rischi di downtime, non essendo il database del sito su una singola macchina ma su un cluster di server che “virtualizzano” i dati.

Prezzo

Come più volte detto un VPS rappresenta una soluzione più economica rispetto ad un server dedicato pur offrendo funzionalità simili. Vi sono diverse aziende che offrono hosting VPS, con diverse peculiarità. Consigliamo sempre di leggere tutte le caratteristiche del piano hosting VPS e di ricordare che non sempre quello più economico risulta essere la scelta migliore.

Design Theme - Temi child

Temi child, impariamo a conoscerli e a usarli

Chi ha un sito internet sa che prima o poi dovrà mettere mano al layout grafico per adattarlo al meglio alle proprie esigenze. Applicare le modifiche direttamente al tema principale potrebbe far si che al successivo aggiornamento di quest’ultimo tutte le migliori e personalizzazioni fatte vadano perse. Allora come si può ovviare al problema?

La risposta è molto semplice, basta usare i temi child – temi figlio – i  ereditano tutte le funzionalità e lo stile del tema principale senza il rischio che vadano persi in un successivo aggiornamento.

In questo articolo parleremo dei child theme della piattaforma WordPress, elencando i pericoli delle modifiche direttamente ai temi, dei vantaggi che un tema child porta e di come è possibile crearli.

I pericoli nel modificare direttamente un tema

A meno che non abbiamo realizzato da noi l’interno tema può capitare di rendersi con che il tema acquistato non rispecchia a pieno le nostre aspettative e quindi è necessario mettervi mano per migliorarlo/adattarlo alle nostre esigenze. Modificare un tema WordPress può essere un’esperienza snervante, un semplice modifica può avere effetti a cascata la cui soluzione non è detto che sia sempre facile.

Inoltre, eventuali modifiche apportate al tema principale andranno perse man mano che vengono rilasciati gli aggiornamenti da parte degli sviluppatori del tema. L’idea di rimanere con il tema modificato tralasciando eventuali nuovi aggiornamenti comporta il possibile aumento della vulnerabilità di sicurezza dell’intero portale.

Ecco perchè i temi child sono la soluzione: possiamo apportare delle modifiche indipendentemente dal tema principale.

I vantaggi dell’utilizzo dei temi child

I vantaggi nell’uso dei child theme è facilmente intuibile da quanto scritto sopra. In primis, il loro utilizzo consente di personalizzare direttamente il sito internet senza preoccuparsi del template usato; consentono di estendere le funzionalità del sito e consentono di accedere in modo più semplice alle modifiche apportate.

Gli svantaggi dell’utilizzo dei temi child

Per poter realizzare un tema child con tutte le nostre personalizzazioni bisogna conosce a pieno le varie funzioni e hook del tema principale. Per fare ciò bisogna dedicare molto tempo a capire i vari meccanismi e a leggere l’eventuale documentazione del tema genitore.

Cercare di apporre delle modifiche senza aver prima capito il funzionamento del tema parent può, anche in questo caso, generare errori a cascata.

Creare un tema child

Prima di iniziare a dire come creare un tema child è bene ricordare che prima di qualsiasi modifica è necessario, più che altro per una sicurezza maggiore, effettuare una copia di backup dell’intero portale. La sicurezza, come sempre, non è mai troppa.

Di cosa abbbiamo bisogno per creare un child theme

Per poter iniziare a creare il nostro tema figlio abbiamo semplicemente bisogno di un client FTP e di un editor di testo. Consigliamo, per la loro facilità d’uso e perchè sono gratuiti, FileZilla come client FTP e Notepad++ come editor di testo.
Ovviamente sono necessari i dati di configurazione per il nostro client FTP, dati che sono stati di certo fornite all’atto dell’acquisto del hosting.

Iniziamo

Creare una directory all’interno della directory dei temi (wp-content/themes) che conterrà il tema child. Il nome della directory non deve contenere alcuno spazio ed è una pratica comune usare il nome del tema genitore aggiungendo alla fine “-child”.

Quindi, se ad esempio, si sta creando un tema child per il tema twentythirteen, il nome della cartella sarà “twentythirteen-child”.

All’interno di questa cartella creiamo un file denomitato style.css. Questo file è l’unico richiesto per la creazione del nostro thema child.

All’interno di questo file dobbiamo inserire il seguente testo


/*
Theme Name: Twenty Thirteen Child
Theme URI: http://example.com/
Description: Tema Child per il tema Twenty Thirteen
Author: Qui il vostro nome
Author URI: http://example.com/about/
Template: twentythirteen
Version: 0.1.0
*/

Ciascuna di queste righe può essere cambiata secondo le necessità del nostro tema.Solo due righe sono obbligatorie: Theme Name e Template.

Theme Name e Template

Theme Name è ovviamente il nome che vogliamo dare al nostro tema child; possiamo scrivere il nome che più desideriamo. Il Template, invece, è il nome della directory del tema genitore.
Nel nostro esempio il tema genitore è TwentyThirteen quindi la voce Template è twentythirteen, che è il nome della directory dove risiede il tema TwentyThirteen.

Il foglio di stile del tema child sovrascriverà il foglio stile del tema genitore. È probabile però che si voglia includere il foglio di stile principale in modo da sfruttarlo al meglio.

Ci sono due metodi per fare ciò: l’uso della funzione @import nel foglio di stile del tema child o una piccola modifica al file functions.php.

È sempre consigliato sfruttare la funzione wp_enqueue_style() nel file functions.php.

Cos’è functions.php

Prima di procedere indicando la modifica da fare al file functions.php è bene spiegare che cos’è questo file.

Il file functions.php è un file di WordPress che racchiude al suo interno delle funzioni specifiche in uso dal tema che si utilizza.

Ogni tema ha il suo file function.php e se si cambia tema si andranno ad utilizzare funzioni diverse. In genere in questo file si inseriscono funzioni personalizzate, per modificare il comportamento del tema in uso.

I riferimenti al file function.php si possono trovare sul sito ufficiale di WordPress.

La modifica al nostro functions.php

Andiamo ora a creare questo file nella cartella principale del vostro tema child. Una volta creato inseriamo il seguente codice al suo interno:

<? php
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

Conclusione

Prima di concludere questo articolo, per chi non ama mettere mano al codice, diciamo che sono disponibili numerosi plug-in di WordPress che consentono di generare temi child in automatico. Siamo sempre dell’avviso però che troppi automatismi fanno male e che bisogno consocere almeno le basi per evitare spiacevoli problemi.

Dopo aver letto questo articolo si è capita l’importanza di un tema child WordPress e si sa come realizzarne uno senza troppa fatica. Un tema child è molto utile per fare esperienza e testare funzionalità e opzioni su di un portale oltre che a risparmiare tempo e lavoro al momento degli aggiornamenti del template.