随笔分类 - mysql
摘要:主键 上级id 节点路径 id pid node_path 1 0 0-1 2 1 0-1-2 3 2 0-1-2-3 node_path text ut8编码 添加普通索引,长度1000 查询下属团队:select * from t where node_path like "mynodepath
阅读全文
摘要:由于navcat收费,改用datagrip,发现某些版本下的mysql,结果表格展示int类似字段,会自动追加很多0。 解决方法是:修改链接的驱动如图:
阅读全文
摘要:import time from threading import Thread import mysql.connector class db(): list = [] # 每个连接最大使用次数 useTimes = 10 # 默认开启的线程数量 threadNum = 10 # 获取连接超时时间
阅读全文
摘要:select * from a left join b on a.id=b.id where a.createtime>xxxx; 执行计划: 如果a.createtime后的结果集比b要大,那么b作为驱动表去整合a的结果 如否,则a.createtime后的结果作为驱动表去整合b select *
阅读全文
摘要:背景 因为mysql数据较大,业务稳定性要求高,在查询分页数据的时候,可能需要很多张表数据组合才可以完成所需字段。 例如 select t1.f1,t2.f2,t3.f3 from t1 left join t2 on t1.f1=t2.f1 left join t3 on t2.f2=t3.f2
阅读全文
摘要:很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符。 看下面的例子:假设有一张q币表(cdb_qb),包含state和value二个字段,没有额外建索引。一共有15条数据。符合
阅读全文
摘要:mysql的简单锁机制。 myisam 1、只支持表级锁,所以经常更新的表结构不适宜用。 2、select也会产生锁表 innodb 1、支持事务,行级锁,表级锁,执行行级锁的前提是sql语句的索引有效,否则,执行表级锁。 2、不存在字段锁问题,直接锁行的。 3、select不会请求锁,自然也不会产
阅读全文
摘要:CREATE DEFINER=`root`@`%` PROCEDURE `batchInsert`(IN loop_times INT) BEGIN DECLARE var INT; SET var = 0; set @exeSql=concat("insert into cdb_dynamic (typeId,addTime,userId) VALU...
阅读全文
摘要:前言 通常,为了简化逻辑,master会设置为只读,正常只通过slave进行读写。 若要两边都写,为了避免自增id冲突,一般会设置奇偶错开,即一台的自增ID均为奇数,另一台均为偶数。 基本原理 首先,slave开启log_bin二进制日志,这里面记录了数据的修改日志,这是同步的基础。 然后,mast
阅读全文
摘要:创建存储过程,将中文字段转拼音首字母CREATE DEFINER=`root`@`%` FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8BEGIN DECLARE V_RETURN VA...
阅读全文
摘要:mysql库 user(用户以及所有库权限配置) db(具体库权限配置) 配置完毕要用命令 FLUSH PRIVILEGES; 刷新权限 备份数据库可以直接copy文件的形式,不过这样copy的文件会有权限或者需要修复的问题。可以更改拥有者和用工具修复来处理。 将my.cnf文件中[mysqld]下
阅读全文
摘要:5.5(linux)[mysqld]#loglog-output=FILEgeneral-log #开启普通日志general-log_file = /tmp/mysqllog/gen.log #设置普通日志文件5.6(win)[mysqld]general_log=1general_log_fil...
阅读全文
摘要:mysqli提供了面向对象和面向过程两种方式来与数据库交互,分别看一下这两种方式。1.面向对象在面向对象的方式中,mysqli被封装成一个类,它的构造方法如下:__construct ([ string $host [, string $username [, string $passwd [, s...
阅读全文
摘要:MYSQL的事务处理主要有两种方法。 1、用begin,rollback,commit来实现begin开始一个事务rollback事务回滚commit事务确认2、直接用set来改变mysql的自动提交模式MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过set aut...
阅读全文
摘要:1、left join 需要注意的事项 以左表为基准,匹配右表,如果右表匹配了两条,那么,就生成两条记录,而这两条记录的坐表信息都是一样的。 之前误以为,右表不会影响记录的条数。select 部分,不再是两张表的概念,而是一个大临时表。比如select t2.count(id) ,会只生成一条记录。
阅读全文
摘要:通过MySQL命令行,可以修改MySQL数据库的密码,下面就为您详细介绍该MySQL命令行,如果您感兴趣的话,不妨一看。 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令 mysq
阅读全文
摘要:select * from gmvcsbase.base_file file,gmvcsbase.base_user user,gmvcsbase.base_department dep,gmvcsbase.base_workstation work where file.police_id=use
阅读全文
摘要:昨天$yestoday = date("Y-m-d 00:00:00",strtotime('-1day'));$today = date("Y-m-d 00:00:00");$result = $this->my_class->get_sql("select count(*) from obj_folder where create_time>'$yestoday' and create_time<='$today'");查询当前这周的数据SELECT name
阅读全文
摘要:";}//创建存储结构mysql_query("DROP PROCEDURE IF EXISTS `my_test1`;", $link);$create_pro_sql = "CREATE PROCEDURE `my_test1`(a INT, b INT) BEGIN DECLARE c INT; IF a IS NULL THEN SET a = 0; END IF; IF b IS NULL THEN SET b = 0; END IF; SET c = a + b; SELECT c AS SUM; ...
阅读全文