select 的字串 少 速度快 还是 *快?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了select 的字串 少 速度快 还是 *快?相关的知识,希望对你有一定的参考价值。
select 的 字串 少 速度快 还是 * 快?mysql数据库
如果多表的查询呢 不只一个表
*号和列出全部字段的速度差不多的
我有个13万条记录的表,该表有65个字段
select * from [表] 耗时34秒
select 字段1,字段2,...,字段65 from [表] 耗时35秒
select 字段1 from [表] 耗时1秒 参考技术A 多了快,对于比较复杂的数据库而言,字符串多了匹配的项目就少,搜索速度就快很多。当然对于小型的数据库,条目本来就很少,字符多了速度也不会快多少,因为匹配项很少 参考技术B 对数数据库检索,select * 和 select 部分字段 的速度差异不大,几乎是一样的。
但是数据库检索的结果传递的编程语言的变量里面,特别是数据库在网络上的时候,就尽量不要使用SELECT *了,那会多传送无用的数据。 参考技术C 单独一个表的话select 后的字段少会快点,如果是多表的话建立索引会提高查询速度本回答被提问者采纳 参考技术D 差不多
LeetCode第30题: 与所有单词相关联的字串
30. 与所有单词相关联的字串
给定一个字符串 s 和一些长度相同的单词 words。在 s 中找出可以恰好串联 words 中所有单词的子串的起始位置。
注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。
示例 1:
输入:
s = "barfoothefoobarman",
words = ["foo","bar"]
输出: [0,9]
解释: 从索引 0 和 9 开始的子串分别是 "barfoor" 和 "foobar" 。
输出的顺序不重要, [9,0] 也是有效答案。
示例 2:
输入:
s = "wordgoodstudentgoodword",
words = ["word","student"]
输出: []
class Solution: def split(self,string,width):#将一个字符串string按着width的宽度切开放在一个列表中,返回这个列表。 result = [] i = 0 length = len(string) while i<=length-width: result.append(string[i:i+width]) i = i+width return result def findSubstring(self, s, words): """ :type s: str :type words: List[str] :rtype: List[int] """ result = [] words_count = len(words) if words_count>0:#判断输入的s和words是否为空,如果不为空,将words中的单词的宽度放在length_word中 length_word = len(words[0]) else: length_word = 0 i= 0 length_s = len(s) if length_s == 0 or words_count == 0:#如果s为空或者words为空,返回空的列表 return [] while i <= length_s-length_word*words_count:#利用while循环,实现对s遍历 string_list = self.split(s[i:i+length_word*words_count],length_word)#将s从i开始切分出一个长度和words中所有单词加在一起长度相同的一个子串,并将这个子串切开,放在string_list中 string_list.sort()#由于words中的单词并不是排好序的,所以这里需要调用两个sort函数,将这两个列表排序,这样才能够判断他们是否相等。 words.sort() if string_list == words:#如果不是排好序的列表,即使里面的元素都相等,但是顺序不等的话,也是不会相等的。 result.append(i) i = i + 1 return result
这道题整体的解题思路就是:
1、计算words中单词的个数和每个单词的长度,用于计算在对s切分时的长度。
2、排除掉s为空和words为空的情况
3、利用while实现对s按着length_word*words_count的宽度进行切分,产生各种子串。
4、将切分的子串再次切分成以length_word为宽度的单词,放在列表中。
5、对列表进行排序(这样可以避免两个列表中单词顺序不同而无法正确比较的情况)
6、比较两个列表,将结果放在result的列表中,并返回这个result。
以上是关于select 的字串 少 速度快 还是 *快?的主要内容,如果未能解决你的问题,请参考以下文章
JAVA中常用IO流类:BufferedReader和BufferedWriter读取文件操作(优势:使用BufferedReader读取字符文件的速度要比我们之前使用的字节流和FileReader快
[真伪]数据库中 select count(1) 比 select count(*) 快?
公司在服务器上建立一个数据仓库,通过Navicat for MySQL进行访问,如何提高select的查询速度。