MySQL数据库个人分析报告.docx
《MySQL数据库个人分析报告.docx》由会员分享,可在线阅读,更多相关《MySQL数据库个人分析报告.docx(16页珍藏版)》请在冰豆网上搜索。
MySQL数据库个人分析报告
分析一、函数
1.1内置函数
MySQL自动提供的函数。
例如:
database(),now(),md5()
1.2自定义函数–存储函数
1.2.1createfunction,创建函数
适用语法:
来创建函数
1.2.2调用函数
1.2.3dropfunction,删除函数
dropfunction[ifexists]function-name;
分析二、触发器
事件驱动程序:
监听元素某些事件,当事件被触发时,事件处理器被调用。
触发器的事件:
insert,delete,update
扩展开共六种:
beforeinsert,afterinsert
beforedelete,afterdelete
beforeupdate,afterupdate
事件都是记录对象的事件,row的beforeinsert,rowafterinsert.
语法:
1.1创建触发器,createtrigger
绑定事件处理器,到row元素上.
测试,在学生表的添加事件上增加触发器程序:
一旦学生表添加,则在学生日志表中,加入一条记录
检测学生日志表:
触发程序被自动调用
触发器,只是调用方式不同于存储过程而已,都是功能的集合.
1.2删除触发器droptriggertigger-name
1.3new,old
预定义的变量,表示触发该事件的行对象.
就是事件源记录.
使用new,old来引用这个事件源记录.
new和old的区别:
new,新纪录
old,旧记录.
只有在update事件时,才会出现新旧记录同时存在的情况.
更新:
将旧记录更改成新纪录.
在insert事件中,只有new可用.beforeinsert,afterinsert,都可以使用new.
在delete事件中,只有old可用.beforedeleteafterdelete都可以使用old
无论是before还是insert都一样.
1.4事件的触发
可能会出现执行一条语句,触发多个事件的情况.
有些语句,带有逻辑判定功能:
replaceinto,尝试插入,如果冲突,则替换(删除旧的,插入新的)
类似的:
insertintoonduplicatekeyupdate
冲突时更新
一个表,的一个事件,仅仅可以绑定一个事件处理器.
一个表最多可以有6个触发器.
分析三、架构
读写分离,负载均衡.
1.1读,写服务器分离
设计:
192.168.1.101,MySQL充当写服务器.
再添加2台linux充当读服务器:
初始化mac地址
完全复制
复制后,启动复制的服务器:
删除,之前所保留的虚拟化网卡的文件,使新生成的网卡生效.
修改eth0的配置文件:
修改mac地址参数:
修改为,virtualbox生成的mac地址:
保持一致
init6重启
1.2读从写服务器复制数据
在主服务器上开一个复制账号,从服务器利用这个复制账号,从主服务器进行复制.
配置过程如下:
1.2.1主服务器
1.2.1.1开启二进制日志
1.2.1.2指定唯一的服务器ID
保证唯一即可!
需要重启mysqld
(可以与步骤一一起完成)
1.2.1.3增加复制账号
登录主MySQL,增加账号,刷新权限.
1.2.1.4记录当前状态位置
showmasterstatus
1.2.2从服务器
1.2.2.1指定服务器的唯一ID
mysqld重启
1.2.2.2开启复制
从服务器的MySQL中执行:
使用changemaster来指定;
此时已经建立的主从复制联系
1.2.2.3开启复制
在从服务器上执行:
startslave