php多数据库支持的应用程序设计第1/2页_php技巧
所以我想在主从数据库设计上,应该将所有会话相关表进行特殊对待。即:所有的会话数据表都可以更新和查询,当一个用户访问站点的时候,即将此用户绑定到指定数据库,所有会话访问和查询操作都对此数据库进行。会话表不做同步,其他非会话类更新也从主数据库更新。这样做其实也逃脱不了会话更新时候的数据库切换,所以如果不想麻烦,还是将会话存放在文本中进行的好。
分数据库设计,将可能从压力性能上会提升几个档次,当然单次执行效率不会比单数据库来的高的,毕竟存在着数据库切换的效率问题。分库以及主从数据库搭配是可以比较好改善数据库并发瓶颈的方案。原则:大数据量,分库;大访问量,主从。很多时候,都是这两者并行(本文不讨论cache)。
我想,如果要实现分库以及主从关系,那么数据库服务器数量将是非常可观,在应用程序中随时切换到某一台服务器,将是非常头痛的问题,配置更换,变量名称,是不是会有一大堆呢?如何寻找更好的解决方案将是本文谈论的话题。
首先是分库使得数据库颇多的问题。什么情况下分库?或许有些人还搞不明白为什么要分库,我就简要说一下自己的经验猜测。比如一个博客程序,一般设计是将日志存放在一张日志表中。假设是一个多用户博客,那么将会关联一个uid,如果数据量不大,这样设计是没有问题的,但是当日志量巨大,一天有几十万条日志记录录入的时候,而且访问量也比较可观的时候,我想不可能每个用户来访问日志列表,都去从这包含几千万条日志记录的数据表中去找那么几条,效率可见一斑。这个时候就该考虑到分库的问题。如何分?有一个很简单的分表方法,即,根据uid段,将日志记录在各个数据库中,当然,这个分布还是需要根据以往统计结果做出调整的,因为用户日志分布肯定不是均匀的。设置好uid段,然后根据uid索引到指定数据库配置,创建一个数据库对象即可。配置信息可能如下:
$configs['db_info']['blog'][0] = array(
'db_host' => '192.168.0.1',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][1] = array(
'db_host' => '192.168.0.2',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][2] = array(
'db_host' => '192.168.0.2',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
//...还有很多
至于选择哪一台服务器,只需要根据uid做一个简单的匹配就可以了。
再谈到的就是主从数据库了。什么情况下使用主从数据库?比如某个名人博客,访问量相当的大,已经没有办法把他的数据再进行拆分了,这个时候就得考虑主从数据库服务器了,使用多台数据库来分流。这样要适用主从和分库,可能上面配置信息得稍微改动一下。
$configs['db_info']['blog'][0]['master'] = array(
'db_host' => '192.168.0.1',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][0]['slave'][0] = array(
'db_host' => '192.168.0.2',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][0]['slave'][1] = array(
'db_host' => '192.168.0.3',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][1]['master'] = array(
'db_host' => '192.168.0.4',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][1]['slave'][0] = array(
'db_host' => '192.168.0.5',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][1]['slave'][1] = array(
'db_host' => '192.168.0.6',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['session'][0]['master'] = array(
'db_host' => '192.168.0.7',
'db_name' => 'session',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['session'][1]['master'] = array(
'db_host' => '192.168.0.8',
'db_name' => 'session',
'db_user' => 'root',
'db_pass' => '',
);
写到这里,我想都应该知道如何分表和分配你的数据库了吧,接下去我就来说一下如何轻松的读取这样的配置信息,如何将这些配置融入你的数据库驱动中。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
