
数据库
hpulfc
你好啊 多评论呐~
展开
-
MySQL 的一些使用
MySQL 的一些使用去重查询去重的方式可以有两个,一个是直接使用distinct, 另外就是使用group 进行分组。SELECT DISTINCT name from test_tale;如果是两个字段的话,会两个字段联合判断是否重复。SELECT DISTINCT name, id from test_table;如下:idname1jack2...原创 2018-12-05 12:13:36 · 156 阅读 · 0 评论 -
sqlalchemy 常用操作
几种常见sqlalchemy查询:# 简单查询 print(session.query(User).all())print(session.query(User.name, User.fullname).all()) print(session.query(User, User.name).all()) # 带条件查询 print(session.q...转载 2019-01-25 11:27:49 · 289 阅读 · 0 评论 -
mysql 避免重复写入数据的三种方式 和insert ...on duplicate updt... 死锁
mysql在存在主键冲突或者唯一键冲突的情况下,根据插入策略不同,一般有以下三种避免方法。1、insert ignore2、replace into3、insert on duplicate key update注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用以上三个语句没有意义,与使用单纯的INSERT INTO相同。一、insert ignoreinsert ...转载 2019-02-18 18:29:19 · 2854 阅读 · 0 评论 -
percona-toolkit 之 【pt-online-schema-change】说明
背景: MySQL 大字段的DDL操作:加减字段、索引、修改字段属性等,在5.1之前都是非常耗时耗力的,特别是会对MySQL服务产生影响。在5.1之后随着Plugin Innodb的出现在线加索引的提高了很多,但是还会影响(时间缩短了),主要是出现了MDL锁。不过5.6可以避免上面的情况,但目前大部分在用的版本都是5.6之前的,所以DDL操作一直是运维人员“头疼"的事。那如何在不锁表...转载 2019-02-25 16:56:23 · 495 阅读 · 0 评论 -
python代码模拟sqlalchemy懒加载注入属性
sqlalchemy 代码模拟懒加载注入属性偶然再次看到有人提到了orm 的一些关联属性的懒加载问题,这里就按照自己的想法实现了一下class Base(object): passclass User(Base): # .... 很多列 @property def address(self): if not hasattr(sel...原创 2019-03-01 17:26:50 · 417 阅读 · 0 评论 -
mysql 出现了 Waiting for table metadata lock的解决方案
在使用pt进行ddl 的时候需要创建触发器,然后在创建的过程中,出现了Waiting for table metadata lock, 下面是一些解决办法,本质是一样的,这里总结来说就是:kill 掉某些事物占用的锁,使DDL成功,然后进而不阻塞其他DML操作。设置锁超时短些 lock_wait_timeout另外可以参考以下链接:https://www.cnblogs.com/digd...翻译 2019-03-05 10:04:46 · 22362 阅读 · 2 评论 -
在线修改大表结构之pt-online-schema-change (alter-foreign-keys-method)
安装sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpmsudo yum install percona-toolkit查看触发器:方式一:use information_schema;select * from TRIGGERS;方式二:use database_nam...原创 2019-02-26 17:05:34 · 3415 阅读 · 2 评论 -
Mysql show processlist 排查问题
一、命令概述:mysql show full processlist 用来查看当前线程处理情况,具体信息请参考官网:https://dev.mysql.com/doc/refman/5.7/en/show-processlist.htmlshow full processlist 返回的结果是实时变化的,是对mysql链接执行的现场快照,所以用来处理突发事件非常有用。一般用到show...转载 2019-04-11 17:51:20 · 2570 阅读 · 0 评论 -
关于mongodb中的GridFS的使用
关于mongodb中的GridFS的基本使用基本的说明mongo 作为一个非关系型数据库,使用非常方便,在项目中也经常的使用。这里主要是说一些他的 网格文件系统 的使用。在我们想要存储一些文件的时候,可以存放得到文件系统里面,然后使用的时候通过程序读取。当然还可以使用数据库进行存放一些小的文件,这里使用mongo的GridFS。GridFS 里面存放的主要是有两个集合,一个集合存放数据...原创 2019-06-29 11:11:59 · 1548 阅读 · 0 评论 -
安装mysql遇到的问题(linux)
在安装mysql ,并且初始化完成,将要启动的时候,初心了下面的信息:Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.查看msyql...原创 2018-09-07 16:51:10 · 295 阅读 · 0 评论 -
mysql 组合索引的顺序问题
很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符。看下面的例子:假设有一张订单表(orders),包含order_id和product_id二个字段。一共有31条数据。符合下面语句的数据有5条。执行下面的sql语句:select product_idfro...原创 2017-02-28 13:15:54 · 3791 阅读 · 2 评论 -
复合索引的优点及注意事项
概念: 单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上; 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引); 复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引; 同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,宽索引也就是索引列超过2列的索引; 设计索引的一个重要原则就是能用窄索引不用宽索转载 2017-02-28 13:17:56 · 648 阅读 · 0 评论 -
MySQL中复合索引中列的顺序对性能的影响
先看上面这个内联的SQL语句,username是dlog_user表的主键,dlog_friend有一个由 username和 friend_username组合而成的复合主键。测试条件一:dlog_user 和 dlog_friend 两个表除了主键外没有建任何索引,对这条SQL语句EXPLAIN的结果是 dlog_user 做了全表查询(type=ALL),Extra信息是us转载 2017-02-28 13:21:21 · 5493 阅读 · 0 评论 -
pymongo
注:在ipython中练习使用,效果更佳阅读目录0. 何为pymongo1、安装pymongo2、连接mongodb3、获取数据库列表4、连接数据库5、权限验证6、获取聚集列表 (聚集的概念类似于关系型数据库中的表)7、连接聚集8、查看聚集的一条记录9、查看聚集的所有key (类似于关系型数据库中的字段)10、查看聚集的所有记录11、查看记录总数12、根据条件查转载 2017-02-28 17:15:45 · 448 阅读 · 0 评论 -
数据库中的schema是什么(简)
数据库中的Schema突然想到数据库中的schema是什么,于是多方搜索有了基本了解,做一个简单记录:在SQL环境下,schema就是数据库对象的集合,所谓的数据库对象也就是常说的表,索引,视图,存储过程等。在schema之上的,就是数据库的实例,也就是通常create databases获得的东西。也就是说一个schema可以有多个schema, 可以给不同的用户创建不同的schema,并且他们...原创 2018-03-15 11:39:55 · 100197 阅读 · 8 评论 -
Mongo之pymongo 源码分析 find sort aggregate
Mongo之pymongo 源码分析 find sort aggregate一次查询的过程 简单来说,pymongo就是python关于Mongo db的一个包,主要是通过对一些命令的包装,通过socket发送给mongo服务,获取到一些结果,对结果进行包装,然后以包装为游标对象返回给使用者,其中游标对象实现了 next方法,同时对__next__进行更新,是的用户可以通过python迭...原创 2018-03-19 16:25:07 · 1819 阅读 · 0 评论 -
python sqlite3 的使用,性能及限制
sqlite3 的使用,性能及限制python 中使用sqlite3首先是基本的使用:# coding=utf8__author__ = 'Administrator'# 导入模块,在 python 中是已经内置了这个模块,所以就不需要安装而直接使用了import sqlite3# 创建数据库的连接,sqlite 是使用的本地文件进行存储的,这里直接打开conn = sqlite3....原创 2018-04-20 16:07:40 · 6620 阅读 · 0 评论 -
MySql优化原则、索引原理,慢查询优化,优化器优化规则
一些简洁实用的做法:基础内容1. 建立索引 优化建议: 常用查询字段 建立索引 以及联合索引 (最左优先原则)2. 避免模糊条件, 例如 null值判断,!=、<>、 or、 in、not in、 % 优化建议: 非常模糊的进行舍弃, 对于 or 可以 分别在索引上查询 并进行union in, 可以用betwe...原创 2018-07-12 11:37:12 · 432 阅读 · 0 评论 -
B+/-Tree原理
B+/-Tree原理B-Tree介绍B-Tree是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)转载 2017-02-28 11:12:26 · 412 阅读 · 0 评论