DB split horizontal support avec FuelPHP

C'est K du bureau de Sapporo.

Traditionnellement, la création d'un système de serveur (environnement LAMP) était centrée sur le développement de son propre framework, mais de plus en plus de frameworks open source sont utilisés.

Le cadre interne n’est pas mauvais, mais s’il s’agit d’un cadre open source, je pense qu’il sera facile de prendre le relais des opérations d’une autre société ou si vous le développez à l’inverse et que vous gérez des opérations pour une autre société.

Donc, j'aimerais écrire un conseil sur DB qui ne me fait pas trop attention à FuelPHP. J'ai entendu dire que cette fois-ci, il est largement utilisé dans les jeux sociaux et autres développements.

* Pour plus d'informations sur le type de cuisses FuelPHP, reportez-vous au document japonais.

(Document japonais de FuelPHP)http://fuelphp.jp/

 

■ Environnement créé cette fois

Cette fois, nous avons effectué la vérification dans l'environnement suivant.

Apache 2.2.22

PHP 5.4.44

mysql 5.5.44,

Carburant PHP 1.7.3

Bien que cela s'appelle un environnement d'examen interne vacant, la version de PHP est un peu ancienne, mais FuelPHP la prend en charge.

Par ailleurs, la dernière version publiée de FuelPHP est la 1.8, et elle prend également en charge PHP 7!

Je voudrais télécharger tous les rapports là aussi.

 

Astuces!

■ Prise en charge du partitionnement horizontal de la table de base de données

Le partitionnement horizontal des tables de base de données est une méthode efficace pour équilibrer la charge dans les jeux sociaux.

Cependant, la division horizontale correspondant à FuelPHP ne contient pas d’information de manière inattendue et doit être falsifiée pour la créer.

Bien que FuelPHP ait pour fonction de séparer le DB lui-même en maître et en esclave, le traitement en cas de dispersion horizontale du tableau n'est pas pris en compte et de bons échantillons ne peuvent pas être trouvés.

 

Par conséquent, nous avons créé un modèle qui étend le modèle ORM existant et avons décidé de sélectionner une table en fonction de conditions.

Pour chaque processus et classe de modèle enfant, ce modèle d'extension est hérité et utilisé. (Ceci est une procédure ordinaire ..)

 

Dans ce mécanisme, nous avons fait les choses suivantes.

· Créer une connexion qui remplace la classe de connexion,

Parmi eux, la table est sélectionnée en fonction de la règle de division.

· Préparer la classe pour l'héritage à ne pas diviser pour la table divisée,

Faire le réglage de la division.

· Les classes de table individuelles héritent de la classe d'héritage ci-dessus et effectuent différentes tâches.

 

L'écrire me fait me sentir un peu compliqué, mais ce sera presque comme suit.

fig001

Par exemple, si vous le trouvez, il s'agit en fait d'un mécanisme permettant de mettre à jour votre classe dans Query :: forge, donc c'est bien.

Lorsque le cours est généré automatiquement avec Scaffold, etc., il doit être réécrit.

 

Dans notre société, nous préparons une table avec des destinations distribuées et y accédons à partir d'une table obtenue par chaque utilisateur (en _ 0 etc.). Je pense que cette zone fait partie de la conception.

 

■ truc Tramp

La configuration du fichier de configuration de Fuel PHP a été décrite comme étant copiée à partir du noyau et réécrite, celle qui suit la réécriture sera adoptée, mais

Sous l'environnement autre que Développement, nous avons constaté que la configuration sous-jacente vivra.

Par conséquent, dans le fichier de configuration que j'ai copié cette fois, je l'ai configuré avec mysqli, mais dès que j'ai changé l'environnement en production, c'est une erreur! !

À la suite de l’examen, c’était une erreur parce que la configuration par défaut de core était pdo.

 

FuelPHP réécrivant fréquemment le noyau lui-même, il semble nécessaire d’être prudent.

 

Impression

FuelPHP est facile à utiliser et constitue un cadre détendu, mais comme il nécessite également une certaine capacité de lecture, j’ai pensé qu’il serait préférable de le personnaliser et de l’utiliser correctement.

Dans l’avenir, je voudrais aborder diverses questions, ainsi que FuelPHP.