一、
2.2、COUNT( * ) 流程 ( 于 sub_select 函数中 )
上层的流程与代码是比较简单的,集中在 sub_select 函数中,其中 2 类函数分别对应于前面”执行框架”部分所述的 2 个步骤 – 读取、计数。先给出结论如下:
(1)读取一行:从相对顶层的 sub_select 函数经过一番调用,最终所有分支将调用到 row_search_mvcc 函数中,该函数就是用于从 InnoDB 存储引擎所存储的 B+-tree 结构中读取一行到内存中的一个 buf (uchar * ) 中,待后续处理使用。
这里会涉及行锁的获取、MVCC 及行可见性的问题。当然对 于 SELECT COUNT( * ) 这类快照读而言,只会涉及 MVCC 及其可见性,而不涉及行锁。详情可跳至“可见性与 row_search_mvcc 函数”部分。
(2)计数一行: 代码层面,将会在 evaluate_join_record 函数中对所读取的行进行评估,看其是否应当计入 count 中 ( 即是否要 count++ )。
简单来说,COUNT(arg) 本身为 MySQL 的函数操作,对于一行来说,若括号内的参数 arg ( 某列或整行 ) 的值若不是 NULL,则 count++,否则对该行不予计数。详情可跳至“ Evaluate_join_record 与列是否为空”部分。
这两个阶段对 COUNT( * )结果的影响如下: (两层过滤)
二、
$mysql
mysql>flush privileges;
msyql>grant all privileges to *.* user@'%' identify by 'password';
mysql>flush privileges;
linux命令
1. du -sh ./*
二、在远程主机中以管理员身份进入
Insert into qhs_timeline(time,info,detail) select time,info,detail from qhs_timeline;
三、 show create table eye_21.order_func
describe table eye_21.order_func
四、建表语句
建表语句
<!--StartFragment--> <!--EndFragment-->
CREATE TABLE `en_orders_93` (
`Id` bigint(20) NOT NULL AUTO_INCREMENT,
`parentId` bigint(20) DEFAULT NULL, `
orderType` int(11) DEFAULT NULL,
`createDate` datetime DEFAULT NULL,
`completeDate` datetime DEFAULT NULL,
`state` int(11) DEFAULT NULL, `yn` tinyint(3) DEFAULT NULL, `splitType` int(11) DEFAULT NULL, `sendPay` varchar(800) DEFAULT NULL, `pin` varchar(300) DEFAULT NULL COMMENT 'pin', `customerName` varchar(300) DEFAULT NULL COMMENT 'customerName', `mobile` varchar(50) DEFAULT NULL, `phone` varchar(50) DEFAULT NULL, `customerEmail` varchar(100) DEFAULT NULL, `paymentType` int(11) DEFAULT NULL, `shipmentType` int(11) DEFAULT NULL, `zip` varchar(50) DEFAULT NULL, `province` int(11) DEFAULT NULL, `city` int(11) DEFAULT NULL, `county` int(11) DEFAULT NULL, `town` int(11) DEFAULT NULL, `address` varchar(2000) DEFAULT NULL COMMENT 'address', `expectPickDate` datetime DEFAULT NULL, `userLevel` varchar(255) DEFAULT NULL, `customerIp` varchar(100) DEFAULT NULL, `partnerId` int(11) DEFAULT NULL, `remark` text,
`weight` decimal(18,4) DEFAULT NULL,
`volume` decimal(18,4) DEFAULT NULL,
PRIMARY KEY (`Id`) ) ENGINE=InnoDB
AUTO_INCREMENT=22373470
DEFAULT CHARSET=utf8
COMMENT='国际站订单详情表'
四
1:mysql导出数据库成为sql文件
mysqldump --opt --user=$dbuser --password=$dbpass --host=$dbhost $dbname > ~/backups/$sitename/$dbname.sql
2:导入数据库sql脚本
source D:\$dbname.sql
3:新建用户
GRANT ALL PRIVILEGES ON *.* TO cactiuser@'%' IDENTIFIED BY 'CactiMadeEZ';
drop user work@'%';
创建用户
GRANT ALL PRIVILEGES ON *.* TO cactiuser@'%' IDENTIFIED BY 'CactiMadeEZ';
drop user work@'%' 删除远程用户
关闭服务:
mysqladmin -u root -p root shutdown 关闭服务 启动服务:mysqld -uroot 或者mysqld --standalone --debug
命令:
在命令行中如果出现乱码:set names gbk
DESC 表名 查看表结构
外键:
1:1005错误的原因出现,大多数情况为,当前的外键
mysql: 的要求:作为外键的那列必须有一个索引(index) 否则就会出现建表不成功的情况。
:外键命名每个标的外键的名字必须不一样,否则也会出现1005错误,命名规则为:fk_当前表_目标表