摘要:
一、前方有坑 php某些自带函数,如果使用不当,也会坑得你人仰马翻。比如:strpos() 先了解一下strpos()函数是干啥的。 strpos — 查找字符串首次出现的位置 用法: int strpos ( string $haystack , mixed $needle [, int $off 阅读全文
摘要:
一、前方有坑 php属于弱类型语言,不会强迫工程师在使用变量之前先声明变量类型,开发时爽了,但是也带来不少的坑。下面就举一个坑的例子: 例1: $str = ‘haodaquan'; echo ($str == 0) ? 1 : 0; 运行结果是: 1 这个坑,在好多公司的笔试题里出现,当然没有这么 阅读全文
摘要:
前言:在日常开发中经常会遇到使用isset()函数检测一个变量是否设置,有什么需要注意的地方,今天一起来讨论一下 注:测试的php版本是5.6.22 一、前方有坑 先上代码: $arr['a'] = NULL; $arr['b'] = ''; $arr['c'] = 0; $arr['d'] = 0 阅读全文
摘要:
军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空间 阅读全文
摘要:
前言:所谓的坑,两个意思,一个是软件本身的bug,一个是使用者常犯的错误。 phper在日常开发中经常和mysql打交道。特别是在没有分层的中小应用中,phper开发要关注sql语句的实现。 入正题,上建表语句: DROP TABLE IF EXISTS `test_sql`; CREATE TAB 阅读全文
摘要:
一、需求 有如下一个表pp_test: 要求查出name字段中不重复的值(不算空值),并且按照id的倒序排列(不必输出ID)。 可能好多人首先想到的是以下sql: 显然,这句是错的。 因为,这句话查询的是name+id不重复的,不是查询name值不重复的。 二、解决 思路:先把表按照倒序排列,然后在 阅读全文
摘要:
mysql建数据库或者建表的时候会遇到选择编码的问题,以前我们都是习惯性的选择utf8,但是在mysql在5.5.3版本后加了utf8mb4的编码,utf8mb4可以存4个字节Unicode,mb4就是most bytes 4的意思。包括Emoji 表情和很多不常用的汉字都可以存储,还可以存储任意新 阅读全文
摘要:
在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB。究竟用哪种存储引擎好呢? 1、MyISAM:表锁;支持全文索引;读并发性能较好。 2、InnoDB:行锁;支持事务,支持外键;写并发性能较好。 实际上,现在大多数的公司里,mysql的规定都是使用InnoDB作为默认存储引擎,除 阅读全文
摘要:
创建mysql数据表的时候,经常会遇到存储小数(浮点数)的情况,如:价格,重量,身高等。 目前大的公司流行三种存储方案: 1、将数据扩大10的倍数达到使用整数类型存储目的。 比如价格,我们经常以分为单位进行存储,也就是将数据扩大100倍,这样元改成分存储。 重量可以用克为单位,如果克还是小数,就以毫 阅读全文
摘要:
几乎每次数据库建模的时候,都会遇到时间类型数据存储的问题。 mysql存储时间通常选择这四种类型:datetime、timestamp、int和bigint四种方式,到底使用什么类型,需要看具体的业务。 我们分别对这四种类型进行讨论。 1、datetime 这个类型可以存储8字节,表示从1000到9 阅读全文