MySQL高级
文章平均质量分 61
MySQL高级主要分为5个部分:1、mysql的架构介绍 2、索引优化分析 3、查询截取分析 4、MySql锁机制 5、主从复制
Jeremy_Lee123
AI Everywhere!
展开
-
MySQL之架构设计
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。Mysql是开源的,所以你不需要支付额外的费用。虽然工作四五年了,也经常使用MySQL,但是仅仅也是停留在会用的层面上。只会用而不重理论,开发中遇到问题,解决起来当然也就比较...原创 2019-11-10 09:37:37 · 1453 阅读 · 0 评论 -
MySQL之索引简介
一、性能下降SQL慢 执行时间长 等待时间长原因查询数据过多:能不能拆,条件过滤尽量少 关联了太多的表,太多join:join 原理。用 A 表的每一条数据 扫描 B表的所有数据。所以尽量先过滤。 没有充分利用到索引 索引针对列建索引。但并不可能每一列都建索引 索引并非越多越好。当数据更新了,索引会进行调整。也会很消耗性能。 且 mysql 并不会...原创 2019-11-10 16:17:27 · 507 阅读 · 0 评论 -
MySQL索引优化分析之性能分析(Explain执行计划)
一、MySQL常见瓶颈二、性能分析工具Explain(执行计划)使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。查看官网说明:使用: Explain + SQL语句作用:三、各字段解释3.1、 id解释:select查询的序列号,包含一组数...原创 2019-11-10 23:28:34 · 670 阅读 · 0 评论 -
MySQL索引优化分析之查询优化(实用)
一、如何使用索引<1>全值匹配我最爱建立索引提高效率CREATE INDEX 索引名字 ON 表名(表字段,表字段,表字段,......)<2>最佳左前缀法则如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列。EXPLAIN SELECT SQL_NO_CACHE * FROM emp...原创 2019-11-10 23:30:14 · 492 阅读 · 0 评论 -
postgresql查询表元数据信息语句
select tablename from pg_tables where schemaname = 'public' and tablename like '%_table' order by tablename原创 2022-02-22 15:46:40 · 1263 阅读 · 0 评论 -
FAQ:sorry,too many clients already
报错如下:sorry, too many clients already解决办法:如果业务上需要增大客户端连接数,那么需要修改max_connections参数的配置打开Postgresql安装目录下的data文件夹,找到postgresql.auto.conf文件,添加下面这段话:max_connections = '800'...原创 2021-11-26 23:45:00 · 1509 阅读 · 0 评论 -
PostgreSQL常用脚本整理
1、序列以自增serial类型主键的序列:alter sequence s_seq restart with 1; #重置序列select currval('tablename_pid_seq');select nextval('tablename_pid_seq');select setval('tablename_pid_seq',1);2、修改表--删除约束alter table tablenamealter column col drop not null;--添加约.原创 2021-03-31 23:11:45 · 1773 阅读 · 0 评论 -
postgreSQL数据类型转换字符串和数值
1、将数值转成字符串类型方法1:调用to_char(int, text)函数,int为要转换值,text为数值格式化模式,其中模式描述为:模式 描述9 带有指定数值位数的值0 带前导零的值.(句点) 小数点,(逗号) 分组(千)分隔符PR 尖括号内负值S 带符号的数值L 货币符号D 小数点G 分组分隔符MI 在指明的位置的负号(如果数字 < 0)PL 在指明的位置的正号(如果数字 > 0)SG 在指明的位置的正/负号使用..原创 2021-03-31 23:11:23 · 16284 阅读 · 0 评论 -
postgresql日期相关函数
PostgreSQL格式化函数提供一套有效的工具用于把各种数据类型(日期/时间、integer、floating point和numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型。它们都遵循一个公共的调用习惯:第一个参数是待格式化的值,而第二个是定义输出或输出格式的模板。...原创 2020-08-12 23:44:06 · 12846 阅读 · 0 评论 -
postgresql计算两点欧式距离(经纬度地理位置)
create or replace function getdistance( i_lngbegin real, i_latbegin real, i_lngend real, i_latend real ) returns float as $body$/* * * select getdistance_bygispoint(116.281524,39.957202,117.648673,38.42584) as dist...原创 2020-08-12 23:38:02 · 1839 阅读 · 0 评论 -
PostgreSQL upsert功能(on conflict do)插入更新
近期有一个需求,向一张数据库表插入数据,如果是新数据则执行插入动作,如果插入的字段和已有字段重复,则更新该行对应的部分字段1. 创建测试表create table meta_data ( id serial, user_id varchar(128) DEFAULT NULL, file_name varchar(1024) DEFAULT NULL, file_path varchar(1024) DEFAULT NULL,原创 2020-09-06 18:37:05 · 15609 阅读 · 0 评论 -
PostgreSQL安装(CentOS7)
打开 PostgreSQL 官网https://www.postgresql.org/,点击菜单栏上的Download,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法:点击上图中的file browser,我们还能下载 Pos...原创 2020-04-19 21:04:21 · 2699 阅读 · 0 评论 -
MySQL批量数据脚本
1、建表语句 CREATE TABLE `dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, ceo INT NULL , PRIMARY KEY (`id`)) ENGINE=INNODB ...原创 2020-03-08 00:01:07 · 2238 阅读 · 0 评论 -
MySQL之查询截取分析(慢查询日志等 )
一、是什么?怎么玩?MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。 具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的语句。 由他来查看哪些S...原创 2019-11-10 21:52:34 · 760 阅读 · 0 评论 -
MySQL之锁机制
目录:一、mysql的架构介绍 二、索引优化分析 三、查询截取分析 四、mysql锁机制 五、主从复制一、概述1.1、定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据...原创 2019-11-10 21:53:40 · 579 阅读 · 0 评论 -
MySQL之主从复制
目录:一、mysql的架构介绍 二、索引优化分析 三、查询截取分析 四、mysql锁机制 五、主从复制一、复制的基本原理slave会从master读取binlog来进行数据同步三步骤+原理图MySQL复制过程分成三步:1 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log e...原创 2019-11-10 21:55:18 · 476 阅读 · 0 评论 -
MySQL数据库可用行与性能监控
一、可用行1.监控数据库是否可以连接方法:mysqladmin -umonitor_user -p -h pingtelnet ip db_port2.监控数据库是否可以读写方法:检查数据库read_only参数是否为off.建立监控表对表中数据进行操作连接后可以执行 select @@versi...原创 2019-11-10 23:47:55 · 361 阅读 · 0 评论 -
MySQL之视图/触发器/事件和数据备份
一、视图 VIEW:说明:将一段查询sql封装为一个虚拟的表。这个虚拟表只保存了sql逻辑,不会保存任何查询结果。作用:1、封装复杂sql语句,提高复用性2、逻辑放在数据库上面,更新不需要发布程序,面对频繁的需求变更更灵活场景:很多地方可以共用的一组查询结果/报表语法:CREA...原创 2019-11-10 23:44:52 · 485 阅读 · 0 评论 -
MySQL之数据编号 @rownum
RowNum 实现并排序:SELECT @rownum:=@rownum+1 rownum, CollectSn From(SELECT @rownum:=0,bbgmain.* FROM qbdb.bbgmain WHERE collectsn!='' ORDER BY collectsn limit 10) t使用示例1、显示当前查询结果的行号SELECT @row...原创 2019-11-11 00:13:20 · 3407 阅读 · 1 评论 -
MYSQL的默认数据库说明
默认数据库分类:information_schema performance_schema mysql test一、informance_schema数据库保存了MySQl服务所有数据库的元信息。 具体MySQL服务有多少个数据库,各个数据库有哪些表,各个表中的字段是什么数据类型,各个表中有哪些索引,各个数据库要什么权限才能访问。SCHEMATA表:...原创 2019-11-10 23:38:22 · 585 阅读 · 0 评论 -
SAP HANA 高性能内存数据库
最近,用到了SAP HANA内存数据库,听过这套集群搭建公司已花费超过2亿RMB。今天对于这款德国SAP制造的内存数据库做一个简单的介绍和总结。虽然在处理大数据方面性能很赞,但是花费太高,不是一般小公司能够承担起的,所以不是很流行,在DB-Engines排名不是很高。一、HANA是什么HANA(High-Performance Analytic Appliance)高性能分析设...原创 2019-10-27 10:44:19 · 4742 阅读 · 0 评论 -
MySQL常用存储过程之新增字段
Mysql官方文档:Add a Column to a table if not existsMySQL allows you to create a table if it does not exist, but does not provide a native way of a adding a column (i.e. a field) to an existing table wit...原创 2019-07-14 09:04:41 · 1584 阅读 · 0 评论 -
存储过程之新增或者修改字段
1、判断字段不存在则增加该字段Talk is cheap, show me your code!-- [新增]判断字段不存在则增加该字段drop procedure if exists proc_add_column_unless_exist;delimiter $$create procedure proc_add_column_unless_exist(in var_table...原创 2020-03-06 19:05:33 · 3373 阅读 · 0 评论 -
存储过程之新增或者删除索引
1、如果索引存在,则删除索引-- [新增]如果索引存在,则删除索引drop procedure if exists proc_del_index_if_exist;delimiter $$create procedure proc_del_index_if_exist(in p_tablename varchar(200),in p_idxname varchar(200))begi...原创 2020-03-06 19:04:33 · 1661 阅读 · 0 评论 -
MySQL经典面试题
建表语句CREATE TABLE `t_dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DE...原创 2020-03-06 00:38:46 · 1515 阅读 · 0 评论 -
Mysql之python API使用
安装引入模块安装mysql模块sudo apt-get install python-mysql在文件中引入模块import MysqldbConnection对象用于建立与数据库的连接 创建对象:调用connect()方法conn=connect(参数列表)参数host:连接的mysql主机,如果本机是'localhost' 参数port:连接的mysq...原创 2020-02-17 21:55:35 · 633 阅读 · 0 评论 -
Mysql之python API实例代码
一、封装观察前面的文件发现,除了sql语句及参数不同,其它语句都是一样的 创建MysqlHelper.py文件,定义类#encoding=utf8import MySQLdbclass MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset='utf8'): self.host=ho...原创 2020-02-17 22:03:32 · 306 阅读 · 0 评论