MySQL性能优化(1)

  • MySQL单实例与多实例
  • MySQL多实例的优缺点
  • MySQL多实例的实现场景
  • JSON类型
  • JSON_EXTRACT()函数
  • JSON_OBJECT()函数
  • JSON_INSERT()函数
  • JSON_MERGE()函数


MySQL单实例与多实例

实例:MySQL数据库由后台线程及一个共享内存区组成,数据库实例才是真正用于操作数据库文件的程序集,是一个动态概念。

多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个数据库进程就是多实例。

MySQL多实例的优缺点

优点:充分利用服务器资源。

缺点:资源抢占问题。

MySQL多实例的实现场景

中小型公司的选择:公司业务访问量不大,希望不同的业务使用不同的数据库服务而互相不受影响,建于资金不足,可食用多实例,比如可以通过3台服务器部署9-15个实例,交叉做主从复制、数据备份及读写分离,这样也能达到多个服务器只装1个数据库的效果。

并发访问不是很大的业务:当业务访问量不大,服务器资源基本都是空闲的,这时很适合多实例应用,如果对sql语句优化较好,多实例是一个很值得使用技术,即使并发打,合理分配资源以及搭配号服务,问题也不大。

门户网站应用:门户网站通常会使用多实例,因为配置硬件好的服务器,可以节省IDC机柜空间,同时运行多个实例可以减少资源浪费情况,例如一个pc服务器,16核CPU,内存128G内存,可运行3-4个实例绰绰有余。

JSON类型

mysql5.7中新增类型
存储在JSON列中的JSON文档的会被自动验证。无效的文档会产生错误;
最佳存储格式。存储在JSON列中的JSON文档会被转换为允许快速读取文档元素的内部格式。

create table t(id int,js json,PRIMARY KEY (`id`))

JSON_EXTRACT()函数

SELECT JSON_EXTRACT('[10,20,[30,40]]','$[1]')

将抽取10
取具体一个值:

SELECT JSON_EXTRACT(data,'$.name'),JSON_EXTRACT(data,'$.address') FROM json_user

JSON_OBJECT()函数

SELECT JSON_OBJECT("name","enjoy","email","enjoy.com","age",35);

mysql单库容量 mysql单实例多库_JSON

JSON_INSERT()函数

@json和@@json区别
局部和系统

UPDATE json_user SET data = JSON_INSERT(data , '$.address',"xiangxue") WHERE uid = 1

JSON_MERGE()函数

select json_merge(' {"name": "enjoy"} ','{"age", 15} ')