有一个表有十万条数据,SELECT COUNT(*) FROM t_tablename; 时间长达10秒以上。
解决办法,把 Primary Key 加上 Unique 约束了,速度变成30毫秒了,解决了。
不太清楚原因,先记着。
参考:https://blog.csdn.net/landstream/article/details/79673176
INSERT INTO tp_article(
name,
user_id,
category_id,
thumbnail,
content,
description,
create_time,
tags
)
SELECT
title,
FLOOR(2 + (RAND() * 10)),
category,
thumbnail,
content,
description,
UNIX_TIMESTAMP(create_time) + ce
1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases all.sql
2、导入所有库mysql 命令行mysql source all.sql;
3、导出某些库系统命令行mysqldump -uusername -ppassword --databases db1 db2 db1db2.sql
4、导入某些库mysql命令行mysql source db1db2.sql;
5、导入某个库系统命令行mysql -uusername -ppassword db1 db1.sql;
或mysql命令行mysql
创建表
CREATE TABLE `kfinfo` (
`Name` varchar(100) DEFAULT NULL,
`CardNo` varchar(50) DEFAULT NULL,
`Descriot` varchar(150) DEFAULT NULL,
`CtfTp` varchar(50) DEFAULT NULL,
`CtfId` varchar(50) DEFAULT NULL,
`Gender` varchar(50) DEFAULT NULL,
`Birthday` varchar(50) DE
MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
查看 secure-file-priv 当前的值是什么
show variables like '%secure%';
那么我们就需要改配置文件my.ini
secure-file-priv=''
重启MySQL
用单数形式更佳,理由如下:
1、概念直观。
你有一个袋子,里面有好多个苹果,你会说这是个苹果袋。但无论里面有0,1,百万个苹果,它依然是个袋子。表也是如此,表明需要描述清楚,表里面包含的对象,而非有多少个数据。
2、便利性
单数形式更简单。有一些单词,它的复数形式可能是非常规的,或者就没有复数形式,但是单数不一样,单数形式则没那么多讲究。有些单词的复数,可能会想到你头大,可能得好好google才出来
3、优雅
特别是一些master-detail形式的资源名称,统一用单数,读起来更方便,对齐更整齐,从顺序上更有逻辑性。
对比下
单数:
Order
OrderDeta
PM2 简介
pm2 是一个带有负载均衡功能的Node应用的进程管理器。
当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。
命令详解:
安装
npm install -g pm2
用法
$ npm install pm2 -g # 命令行安装 pm2
$ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js
# 也可以把'max' 参数传递给 start
# 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api # 命名进程
$
在MySQL数据库中,mysql-bin.000001、mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。这样做主要有以下两个目的:1:数据恢复如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。2:主从服务器之间同步数据主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。处理方法分两种情况:1:只有一个mysql服务器,那么可以简单的注释掉这个
执行命令:service mysql status
提示:ERROR! MySQL is running but PID file could not be found
搜索了一下,有人说可能是硬盘满了,清理下垃圾文件。
这才恍然明白,刚刚用vi查看日志文件提示那个错误的原因。
在根目录/下执行命令:df -h
输出如下:
[root@localhost /]# df -h
Filesystem Size Used Avail Use% Mounted on
**/dev/mapper/VolGr
1. 关掉mysql服务,打开系统设置最后的mysql,然后将mysql先关掉2. 生成一个文件命名mysql-init,文件中放入:一句话,这句话不同版本不一样,如下:(括号里面不包含)alter user ‘root’@‘localhost’ identified by ‘新密码’;(MySQL 5.7.6 and later)set password for ‘root’@‘localhost’=password(‘新密码’);(MySQL 5.7.5 and earlier)3. cd /usr/local/mysql/bin/sudo sumysqld_safe —init-file
1.删除所有的目录,只保留datasharebin2.删除BIN下面除以下三个文件之外的所有文件:libmysql.dll(MYSQL5中的文件,在MYSQL5.5中不存在)mysqladmin.exemysqld.exe3.如果要用客户端,请保留mysql.exe4.删除Share目录下除以下目录外的所有目录charsetsenglish5.删除Data目录下的除mysql之外的所有文件和目录1.准备工作下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip,解压缩到相关目录,如:d:\ mysql-noinstall-5.1.53-win32
SELECT
user_id, group_id, COUNT(status) - SUM(status) AS contract
FROM tp_contract
GROUP BY user_id
HAVING
group_id = 18 AND
COUNT(status) - SUM(status) 0
LIMIT 0,10select name as name1 from table1 where name1='aaa';上面的运行有问题, 字段别名不能直接在谓词部分引用,表别名可以。有人解释为MySql中列的别名本来是返
使用workbench,如果你要批量更新或删除数据,一般会报“Error Code: 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column”错误,这是Workbench的安全设置导致的,通过设置就可以处理。快速设置,直接在workbench里面的查询窗口输入“SET SQL_SAFE_UPDATES = 0;”就可以了。如果你想要图形界面设置,请继续。在workbench的菜单栏点击“edit-- Preferences”,然后会弹出对
Oren Eini(又名Ayende Rahien)建议开发者尽量避免数据库的软删除操作,读者可能因此认为硬删除是合理的选择。作为对Ayende文章的回应,Udi Dahan强烈建议完全避免数据删除。所谓软删除主张在表中增加一个IsDeleted列以保持数据完整。如果某一行设置了IsDeleted标志列,那么这一行就被认为是已删除的。Ayende觉得这种方法“简单、容易理解、容易实现、容易沟通”,但“往往是错的”。问题在于: 删除一行或一个实体几乎总不是简单的事件。它不仅影响模型中的数据,还会影响模型的外观。所以我们才要有外键去确保不会出现“订单行”没有对应的父“订单”的
这是因为删除操作后在数据文件中留下碎片所致。DELETE只是将数据标识位删除,并没有整理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间。另外实际操作过程中还发现这个问题还存在两种情况。(1)当DELETE后面跟条件的时候,则就会出现这个问题。如:delete from table_name where 条件删除数据后,数据表占用的空间大小不会变。(2)不跟条件直接delete的时候。如:delete from table_name清除了数据,同时数据表的空间也会变为0。这就存在了一个问题,在网站的实际运行过程中。经常会存在这样的附带条件删除数据的操作行为。天长日久,这不就在数
定义和用法DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。可以使用的格式有:格式 描述%a缩写星期名
%b缩写月名
%c月,数值
%D带有英文前缀的月中的天
%d月的天,数值(00-31)
%e月的天,数值(0-31)
%f微秒
%H小时 (00-23)
%h小时 (01-12)
%I小时 (01-12)
%i分钟,数值(00-59)
%j年的天 (001-366)
%k小时 (0-23)
%l小时 (1-12)
%M月名
%
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串 后面的 '%Y%m%d' 主要是将返回值格式化 例如: mysql SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' ) - 20071120 mysql SELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d' ) - 2007年11月20 UNIX_TIMESTAMP()是与之相对正好相反的时间函数 UNIX_TIMESTAMP(), UNIX_TIMESTA
合并两个数据表,而被合并的表的列必须完全相同,也就是:列的数量一致,列的名字一致,列的顺序一致,列的类型一致。
两者的区别:
union合并表之后,重复的行数据会被化作一条数据,而后者union all将所有数据行都显示,重复的时候依然保持重复。
union使用方法:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
union all使用方法:
SELECT column_name(s) FROM table_name
在安装一个php程序,执行mysql数据库sql文件时,一直报错,出现“1366 - Incorrect integer value: '' for column 'ID' at row 1 ”。出现错误的原因是没有给自增ID赋值,尽管之前的版本可以不赋值,自动增加,但是在新版本的msyql(mysql 5.X以上版本)中需要为其赋值NULL。下面这个sql插入就会出现“1366 - Incorrect integer value: '' for column 'ID' at row 1”INSERT INTO `test` (
所有标签