在一个千万级的数据库查寻中,如何提高查询效率?
转载 在一个千万级的数据库查寻中,如何提高查询效率?
一、数据库设计方面1、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引;2、应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfromtwherenumisnull可以在num上设置
mysql那些事(6)时间类型数据如何存储
原创 mysql那些事(6)时间类型数据如何存储
几乎每次数据库建模的时候,都会遇到时间类型数据存储的问题。mysql存储时间通常选择这四种类型:datetime、timestamp、int和bigint四种方式,到底使用什么类型,需要看具体的业务。我们分别对这四种类型进行讨论。1、datetime这个类型可以存储8字节,表示从1000到9
mysql那些事(5)手机号与座机号码如何存储
原创 mysql那些事(5)手机号与座机号码如何存储
创建mysql数据表的时候,经常会遇到手机号码和座机号码数据的存储问题。先说手机号码:很多人喜欢使用数字来进行存储,手机号不涉及到运算,并且有时候要带括号,加号之类的字符,有时候还要以0开头。所以,手机号最好使用varchar(20)的方式进行存储,这样存储可以支持模糊查询。座机号码的存储有
mysql那些事(4)小数如何存储
原创 mysql那些事(4)小数如何存储
创建mysql数据表的时候,经常会遇到存储小数(浮点数)的情况,如:价格,重量,身高等。目前大的公司流行三种存储方案:1、将数据扩大10的倍数达到使用整数类型存储目的。比如价格,我们经常以分为单位进行存储,也就是将数据扩大100倍,这样元改成分存储。重量可以用克为单位,如果克还是小数,就以毫
mysql那些事(3)建库建表编码的选择
原创 mysql那些事(3)建库建表编码的选择
mysql建数据库或者建表的时候会遇到选择编码的问题,以前我们都是习惯性的选择utf8,但是在mysql在5.5.3版本后加了utf8mb4的编码,utf8mb4可以存4个字节Unicode,mb4就是mostbytes4的意思。包括Emoji表情和很多不常用的汉字都可以存储,还可以存储任意
mysql那些事(2)建表存储引擎的选择
原创 mysql那些事(2)建表存储引擎的选择
<p>在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB。究竟用哪种存储引擎好呢?</p><p>1、MyISAM:表锁;支持全文索引;读并发性能较好。</p><p>2、InnoDB:行锁;支持事务,支持外键;写并
mysql那些事(1) WHERE条件 字符串的引号
原创 mysql那些事(1) WHERE条件 字符串的引号
<pstyle="margin-top:18px;margin-bottom:0px;padding:0px;color:rgb(34,34,34);font-family:">前言:所谓的坑,两个意思,一个是软件本身的bug,一个是使用者常犯的错误。<
按照ID倒序查出某个字段不重复的集合
原创 按照ID倒序查出某个字段不重复的集合
一、需求有如下一个表pp_test:idname1aa2bb3cc4aa5cc6要求查出name字段中不重复的值(不算空值),并且按照id的倒序排列(不必输出ID)。可能好多人首先想到的是以下sql:SELECTDISTINCTname,idFROMpp_testWHERE`name`<
58到家数据库30条军规解读
转载 58到家数据库30条军规解读
军规适用场景:并发量大、数据量大的互联网业务军规:介绍内容解读:讲解原因,解读比军规更重要一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间(3)