刚刚我们说过了,生活中难免会有一些不如意,比如,我们用一个字符串类型的字段来作为主键,表面上,这太不如意了,然而,事实也证明这是有用的。
对于大型的系统而言,Oracle,SQLServer无疑是最好的选择,可看看现在越来越多的小网站,他们没有自己的服务器,只是买别人的空间和数据库,但这种小型的数据库在性能上当然和大型数据库没有对比性,但小型的数据库也要对自己的优化方式,今天和大家分享Mysql中加没加单引号的巨大区别,对于MYSQL性能优化很有意义。刚刚我们说过了,生活中难免会有一些不如意,比如,我们用一个字符串类型的字段来作为主键,表面上,这太不如意了,然而,事实也证明这是有用的。问题也就出来了,当在查询语句中对该字段值加上单引号和不加查询耗时相差百倍!
测试表:
代码如下:
CREATE TABLE `foo` ( `key` varchar(10) NOT NULL, `time` int(11) NOT NULL, PRIMARY KEY (`key`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后插入30多万条数据,然后执行下面的SQL语句:
代码如下:
SELECT *FROM `foo`WHERE `key` =1293322797
查询花费 0.1288 秒,大约花费这么久的时间,然后,给1293322797加上单引号:
代码如下:
SELECT *FROM `foo`WHERE `key` ='1293322797'
查询花费 0.0009 秒,基本上相差100倍!!!也就是说不加单引号MYSQL性能损失了100倍,很震撼的比例!
后来用EXPLAIN分别跑了一下上面两条语句,见下面两张图:
没有单引号时
有单引号时
很明显,不使用单引号没有用上主索引,并进行了全表扫描,使用单引号就能使用上索引了。
后来我用大于分别进行了测试,返回的结果集相同,而他们的耗时和上面一样,用EXPLAIN测试,也和上面一样
代码如下:
SELECT *FROM `foo`WHERE `key` >1293322797SELECT *FROM `foo`WHERE `key` >'1293322797'
加单引号和不加单引号就是这么大的差别!就是会对mysql性能产生这么大的影响。
再后来,我将字段`key`换成INT类型,这时候,加不加单引号,就没有什么差别了,EXPLAIN显示他们都同样能够用上主索引,只是key_len变短了。
就是这些,综上所述,我们在写SQL查询的时候还是不厌其烦的加上单引号吧,似乎那没有坏处。

如何优化SQLServer和MySQL的性能,让它们发挥最佳水平?摘要:在当今的数据库应用中,SQLServer和MySQL是两个最为常见和流行的关系型数据库管理系统(RDBMS)。随着数据量的增大和业务需求的不断变化,优化数据库性能变得尤为重要。本文将介绍一些优化SQLServer和MySQL性能的常见方法和技巧,以帮助用户利用

今天不知道修改了什么设置,我在vim里面写程序的时候,发现单引号和双引号都打不出来。双引号打出来的效果是¨¨,这会是导致程序出错!出现这种问题的原因是键盘布局与实际不相符,要进行修改。单/双引号打不出来的解决办法:(备注:如果你的桌面是英文版,请自己进行翻译。)1、点击系统-->选择管理-->选择键盘,将美国国际式改为美国英语式!2、点击系统-->选择首选项-->选择键盘。检查设置是否与下图一致:然后重新打开vim工具,问题应该就解决了!

在MySQL数据库中,索引是一种非常重要的性能优化手段。当表中的数据量增加时,不适当的索引会导致查询变慢,甚至出现数据库崩溃的情况。为了提高数据库性能,在设计表结构和查询语句时需要合理地使用索引。而复合索引是一种较为高级的索引技术,通过将多个字段作为索引的组合来提高查询的效率。在本文中,将详细介绍如何通过使用复合索引来提高MySQL的性能。什么是复合索引复合

在PHP中,单引号和双引号是两种常见的字符串包裹方式,它们在使用时有着不同的特点和规则。本文将分别对单引号和双引号的使用规则进行解析,并提供具体的代码示例来帮助读者更好地理解它们的区别。一、单引号的使用规则:单引号内的内容会被原样输出,不会解析其中的变量或转义字符。这意味着在单引号内部,PHP将字符串认定为普通的字符序列,不会对其中的内容做任何处理。单引号内

在MySQL中,事务隔离级别是一个非常重要的概念,它决定了在同时执行多个事务时,数据库会如何处理数据的并发访问。在实际应用中,我们需要根据具体的业务需求来选择适当的隔离级别,以提高MySQL的性能。首先,我们需要了解MySQL的四个事务隔离级别:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ和SERIALIZA

MySQL是一款被广泛使用的开源关系型数据库管理系统。在处理巨大的数据量时,良好的性能是至关重要的。MyISAM索引缓存是MySQL的一个非常重要的特性,它可以大幅提高数据读取的速度和性能。在本文中,我们将深入探讨MyISAM索引缓存的工作原理以及如何配置和优化索引缓存来提升MySQL的性能。什么是MyISAM索引缓存?MyISAM是MySQL中的一种存储引

MySQL是广泛使用的关系型数据库管理系统,由于其高性能、可扩展性和开源性质,成为了许多企业和个人使用的首选。然而,随着数据量不断增大、数据复杂度不断提高,MySQL的性能问题开始浮现。其中一个重要的性能问题是查询时间。查询时间是指MySQL查询所花费的时间。查询时间越短,意味着MySQL性能越高,能够处理更多的查询请求。针对此问题,我们可以通过查询时间分析

随着数据库应用越来越复杂,提高MySQL性能成为越来越重要的任务之一。在MySQL性能优化中,操作系统优化是不可忽略的因素之一。操作系统的优化可以帮助MySQL更好的利用硬件资源,提高系统稳定性和性能。在本篇文章中,我们将探讨如何优化操作系统来提升MySQL性能。一、调整内核参数调整内核参数是操作系统优化的基本方法之一。以下是一些重要的内核参数设置:调整内存


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Mac version
God-level code editing software (SublimeText3)

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
