个人所有文章整理在此篇,以后将陆续更新收录:知无涯,行者之路莫言终(我的编程之路) 零、如何访问服务器上的mysql数据库 1.远程连接服务端的MySQL 开发3306端口(端口号为你服务器上的
1、整合DDL语句 在将索引添加到MySQL表的过程中,一个很重要的问题就是DDL语句时阻塞性,把多条alter语句整合成一条SQL语句时一种简单的优化改进。 例如: alter table test add index(username); alter table test drop index name,add index name(last_name,first_name); alter table test add column laset_visit date null; 改成: alter table test add index(username), drop index name, add index name(last_name,first_name), add column laset_visit date null; 该优化能够大幅度提升管理任务的性能。 2、去除重复索引 重复的索引有两个主要的影响:第一,所有DML语句都会运行的更慢,因为需要更多工作来保持数据和索引的一致性;第二,数据库的磁盘占用量会更大,这将导致备份和恢复的时间增加。 例如: create table test (id int unsinged not null, first_name varchar(30) not null, last_name varchar(30) not null, joined date not null, primary key(id), index (id) ); 这个DDL中id列上的索引是重复的索引,需要将其移除。 当一个给定索引的最左边部分被包含在其他索引中时也会产生重复索引。 create table test (id int unsinged not null, first_name varchar(30) not null, last_name varchar(30) not null, joined date not null, primary key(id), index name1 (last_name), index name2 (last_name,first_name) ); name1这个索引是多余的,因为此索引所在的列已经被包含在索引name2的最左边部分里面了。 3、删除不用的索引 除了重复索引没有被使用到之外,还有其他索引可能也没有被用到,这些索引和重复索引一样会影响性能。 4、监控无效的索引 当定义多列索引时,一定要注意确定所指定的每一列是否真的有效,可以通过分析指定表上的所有SQL语句的key_len列来找到那些可能包含没有使用到的列的索引。
---- 零、结构化查询语言:SQL(Structured Query Language) DDL 数据定义语言 管理库,表 DML 数据操作语言 增删改查 DCL 数据控制语言 数据控制,权限访问等 ---- 准备活动:创建库和表 CREATE DATABASE datatype; USE datatype; CREATE TABLE type_number( type CHAR(12), byte TINYINT UNSIGNED, range_singed VARC
疑问: mysql的字段,unsigned int(4), 和unsinged int(5), 能存储的数值范围是否相同。如果不同,分别是多大? 答: 无论是int(4), int(5), 存储的都是4字节无符号整数, 也就是0~2^32。。但是,当数字不足4位或5位时,前面会用0补齐。 MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。 该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。 显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定
FIR滤波器,全称为Finite Impulse Response,即有限脉冲响应。滤波器的系统函数为:
mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大?
winsock第一个版本使用sockaddr来强迫使用特定的寻址方式,这样添加其他的协议就不可能了 1 struct sockaddr 2 { 3 u_short sa_family;//地址家族 4 char sa_data[14];//不同的地址家族,不同 5 }; 在winscok中 应用程序通过SOCKADDR_IN结构来指定IP地址和端口号 1 struct scockaddr_in{ 2 short sin_family;//地址家族 3 u_short sin_
Android的代码混淆是开发者需要了解的相关知识,它能够防止android应用程序的反编译。因为android程序多数是java语言开发的,而java代码很容易被反编译,所以为了使android应用程序代码应用一定的安全性,进行android代码的混淆是非常有必要的。 在了解代码混淆之前,先了解android的反编译。进行android的反编译需要借助两个工具dex2jar和jd-gui。 1.代码的反编译 在两个工具准备好之后,将apk文件的直接解压。在解压后的文件中,将classes.dex复制到de
C++定义了一组内置类型对象之间的转换标准,在必要的时候它们被编译器隐式的转换 1、任何两种或多种类型的数据和变量混合操作的时候,最宽的数据类型成为目标转换类型(常量和变量都会被改变) 2、不同类型的表达式之间赋值的时候,被赋值的对象类型成为目标转换类型 3、函数调用实参和形参类型不一致的时候,形参的对象类型成为目标转换类型 4、函数的返回值类型和函数表达式的类型不一样的时候,函数表达式的类型成为目标转换类型 注意:算术运算中两个通用的的指导准则如下 (1)为了防止精度损失,类型总是被提升为较宽的类型。 (
我们都知道,C语言的基本类型就char, short, int 等。但是我们在看其他源码时经常碰到int32_t, int8_t这种形式的定义,他们是什么呢。其实他们就是基本类型的typedef重定义。 也就是不同平台下,使用以下名称可以保证固定长度。 1字节 int8_t —— char 2字节 int16_t —— short 4字节 int32_t —— int 8字节 int64_t —— long long
开发环境 VC6.0 编辑器 Cmd Markdown C++中delete表达式执行的操作是:1,调用析构函数;2,释放对象内存(operator delete(…))。 如果父类的析构函数没有声明为virtual函数,且子类中至少存在一个virtual函数,此时将子类的对象地址赋值给父类指针。当对父类的指针执行delete操作时,会调用父类析构函数,然后在释放内存时(即delete表达式执行的操作的2,释放对象内存)出现崩溃。然而如果子类中不存在一个virtual函数时,执行上面同样的操作就不
用过 Python 的列表吗?就是那种可以存储任意类型数据的,支持随机读取的数据结构。 没有用过的话那就没办法了。
C 语言内存管理指对系统内存的分配、创建、使用这一系列操作。在内存管理中,由于是操作系统内存,使用不当会造成毕竟麻烦的结果。本文将从系统内存的分配、创建出发,并且使用例子来举例说明内存管理不当会出现的情况及解决办法。
1. 防止一个头文件被重复包含 1#ifndef COMDEF_H 2#define COMDEF_H 3//头文件内容 4#endif 2. 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 1typedef unsigned char boolean; /* Boolean value type. */ 2typedef unsigned long int uint32; /* Unsigned 32 bit value */ 3typedef unsigned
特别鸣谢:木芯工作室 孔子学鼓琴师襄子,十日不进。师襄子曰:“可以益矣。”孔子曰:“丘已习其曲矣,未得其数也。”有间,曰:“已习其数,可以益矣。”孔子曰:“丘未得其志也。”有间,曰:“已习其志,可以益矣。”孔子曰:“丘未得其为人也。”有间,有所穆然深思焉,有所怡然高望而远志焉。曰:“丘得其为人,黯然而黑,几然而长,眼如望羊,如王四国,非文王其谁能为此也!”师襄子辟席再拜,曰:“师盖云文王操也。”
上面只是简单的介绍函数原型和功能,如果想对函数进一步了解可以下载以下文档 (内含详解与实例):
整数类型:tinyint、smallint、mediumint、integer、bigint
遍历文件a,对每个url求取hash(url)%1000,然后根据所取得的值将url分别存储到1000个小文件(记为a0,a1,…,a999,每个小文件约300M),为什么是1000?主要根据内存大小和要分治的文件大小来计算,我们就大致可以把320G大小分为1000份,每份大约300M。
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。
《深入理解计算机系统》这本书的质量着实很高,内容丰富充实,课后的实验也都很有意思,也有一定的难度。当时做这鬼东西也是花了我不少时间最终还有几道题去网上查阅了答案才写完,勉强看看吧。
1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,Linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。 b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。 c)字段名显示区分大小写,但实际使⽤用不区分,即不可以建立两个名字一样但大小写不一样的字段。 d)为了统一规范, 库名、表名、字段名使用小写字母。
提到unsigned,大家应该都了解,有朋友问c语言中unsigned什么意思,还有人想问c语言中的unsigned是什么意思,这到底是咋回事?事实上unsigned呢,下面是小编推荐给大家的unsigned int,下面我们一起来看看吧!
该文介绍了如何在C++中实现一个简单的链表,包括链表节点的定义、基本操作的定义和链表的基本操作。同时,还介绍了在C++中如何实现链表,以及链表的一些常见应用场景。
Win mysql安装:Windows下安装MySQL详细教程 - m1racle - 博客园 (cnblogs.com)
[work@db-testing-com06-vm3.db01.baidu.com c++]$ gcc -W -o micro micro.c [work@db-testing-com06-vm3.db01.baidu.com c++]$ ./micro UPCASE(c): a -> A DECCHECK(dec): 5 -> 1 HEXCHECK(hex): e -> 1 ARRAY_SIZE(array): array[10] -> 10
大家好,我是第二次参加LiveVideoStack举办的活动,第一次参加的时候我准备了两部分内容:程序化和流行的VR、AR。当时出品人陆老师(陆其明)谈到单纯地讲程序化太偏,可能整体效果不好,于是我临时改换了演讲主题,讲另外一个也就是VR、AR的案例。但是在参会时有人向我反映,在这种纯粹的讲代码讲技术的特殊行业,只讲例子反而不如今天讲的这个,所以我的思想发生了变化。这次来分享,我就迫不及待的把之前准备的东西拿出来,今天的内容也比较适合,短小精悍。我会与大家分享几个小例子和编码中一些小的技巧,而最近火热的区块链播放器,AI增强的另外一些编码器主题可能太大,需要更多的时间与大家讨论。我认为这些话题有可能在今年10月份有可能有结果,现在定论为时尚早。程序开发就是如此,等到大家出结果的时候,可能风口已经过去,大家也已经不追了,这是一种趋势。
这个名字是编译器默认的输出名。如果要修改可执行文件的名字可以加-o参数:gcc -o myexec main.c
【FAQ-1-01】 库名、表名、字段名必须使⽤小写字母,并采⽤下划线分割。 a)MySQL 有配置参数 lower_case_table_names,不可动态更改,linux 系统默认为 0,即库表名以实际情况存储,⼤小写敏感。如果是 1,以⼩写存储,⼤小写不敏感。如果是 2,以实际情况存储,但以小写⽐较。 b) 如果⼤小写混合使用,可能存在 abc,Abc,ABC 等多个表共存,容易导致混乱。 c) 字段名显⽰区分⼤⼩写,但实际使用不区分,即不可以建立两个名字⼀样但大小写不一样的字段。 d) 为了统⼀规范,库名、表名、字段名使⽤⼩写字母。
Review一同事的C++代码,发现其中有一个拼接而成的多记录INSERT语句可能超大(预计最大可超过1M,甚至10M也有可能,视实际记录条数而定)。担心包大存隐患,所以特意分析一下mysql_real_query函数的实现,以确保使用是否安全。研究对象为MySQL-8.0.14,其它版本可能有小许差异,但估计差异不会太大。
替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会用替换列表代替它。
在编程中我们总要进行一些数学运算以及数字处理,尤其是浮点数的运算和处理,这篇文章主要介绍C语言下的数学库。而其他语言中的数学库函数的定义以及最终实现也是通过对C数学库的调用来完成的,其内容大同小异,因此就不在这里介绍了。 C语言标准库中的math.h定义了非常多的数学运算和数字处理函数。这些函数大部分都是在C89标准中定义的,而有些C99标准下的函数我会特殊的说明,同时因为不同的编译器下的C标准库中有些函数的定义有差别,我也会分别的说明。
还有一款 在线模拟器emulsiV,简单易上手,对指令的走向更加直观,但该网站目前好像不可用了
CMU的15-213课程Introduction to Computer Systems (ICS)里面有一个实验叫attack lab,利用缓冲区溢出漏洞改变正常的程序运行行为,从而达到攻击的目的。关于这个lab的解题思路,网上已经有很多了,但我依然想要再来一篇。原因包括:
又是新的一年奋斗路的开启,相信有不少人农历新年之后,肯定会有所变动(跳槽加薪少不了)。所以,我把往期推送过的MySQL技术文章做了一个相关的整理,基础不好的可以从最基础的学习一遍,提高的也可以从中再提取深入一下。
预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置。
mysql5.5 mysql5.6 mysqI5.7(稳定) mysql8 更高版本
领取专属 10元无门槛券
手把手带您无忧上云