mirror of
https://github.com/MariaDB/server.git
synced 2026-04-24 17:25:31 +02:00
Optimization of delete with record cache (for MyISAM tables)
Added missing files for innobase to the distribution BUILD/compile-pentium-debug: Always compile with BDB tables BUILD/compile-pentium: Always compile with BDB tables configure.in: Added missing files for innobase to the distribution innobase/mem/Makefile.am: Added missing files for innobase to the distribution innobase/pars/Makefile.am: Added missing files for innobase to the distribution sql/ha_isam.h: Don't use record cache with delete sql/handler.h: Optimization of delete with record cache sql/mysql_priv.h: Optimization of delete with record cache sql/records.cc: Optimization of delete with record cache sql/sql_delete.cc: Optimization of delete with record cache
This commit is contained in:
parent
97acb7b3d1
commit
765c255873
10 changed files with 16 additions and 20 deletions
|
|
@ -7,11 +7,6 @@ extra_flags="$pentium_cflags $fast_cflags"
|
|||
extra_configs="$pentium_configs"
|
||||
strip=yes
|
||||
|
||||
# Use the optimized version if it exists
|
||||
if test -d /usr/local/BerkeleyDB-opt/
|
||||
then
|
||||
extra_configs="$extra_configs --with-berkeley-db=/usr/local/BerkeleyDB-opt/"
|
||||
fi
|
||||
extra_configs="$extra_configs --with-innobase"
|
||||
extra_configs="$extra_configs --with-berkeley-db --with-innobase"
|
||||
|
||||
. "$path/FINISH.sh"
|
||||
|
|
|
|||
|
|
@ -8,11 +8,6 @@ c_warnings="$c_warnings $debug_extra_warnings"
|
|||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||
extra_configs="$pentium_configs $debug_configs"
|
||||
|
||||
# Use the debug version if it exists
|
||||
if test -d /usr/local/BerkeleyDB-dbug/
|
||||
then
|
||||
extra_configs="$extra_configs --with-berkeley-db=/usr/local/BerkeleyDB-dbug/"
|
||||
fi
|
||||
extra_configs="$extra_configs --with-innobase"
|
||||
extra_configs="$extra_configs --with-berkeley-db --with-innobase"
|
||||
|
||||
. "$path/FINISH.sh"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
|
|||
AC_INIT(sql/mysqld.cc)
|
||||
AC_CANONICAL_SYSTEM
|
||||
# The Docs Makefile.am parses this line!
|
||||
AM_INIT_AUTOMAKE(mysql, 3.23.34)
|
||||
AM_INIT_AUTOMAKE(mysql, 3.23.34a)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
PROTOCOL_VERSION=10
|
||||
|
|
|
|||
|
|
@ -19,6 +19,6 @@ include ../include/Makefile.i
|
|||
|
||||
libs_LIBRARIES = libmem.a
|
||||
|
||||
libmem_a_SOURCES = mem0mem.c mem0pool.c
|
||||
libmem_a_SOURCES = mem0mem.c mem0pool.c mem0dbg.c
|
||||
|
||||
EXTRA_PROGRAMS =
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ include ../include/Makefile.i
|
|||
|
||||
libs_LIBRARIES = libpars.a
|
||||
|
||||
noninst_HEADERS = pars0grm.h
|
||||
|
||||
libpars_a_SOURCES = pars0grm.c lexyy.c pars0opt.c pars0pars.c pars0sym.c
|
||||
|
||||
EXTRA_PROGRAMS =
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ class ha_isam: public handler
|
|||
int_option_flag(HA_READ_NEXT+HA_READ_PREV+HA_READ_RND_SAME+
|
||||
HA_KEYPOS_TO_RNDPOS+ HA_READ_ORDER+ HA_LASTKEY_ORDER+
|
||||
HA_HAVE_KEY_READ_ONLY+HA_READ_NOT_EXACT_KEY+
|
||||
HA_LONGLONG_KEYS+HA_KEY_READ_WRONG_STR + HA_DUPP_POS)
|
||||
HA_LONGLONG_KEYS+HA_KEY_READ_WRONG_STR + HA_DUPP_POS +
|
||||
HA_NOT_DELETE_WITH_CACHE)
|
||||
{}
|
||||
~ha_isam() {}
|
||||
const char *table_type() const { return "ISAM"; }
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@
|
|||
#define HA_PRIMARY_KEY_IN_READ_INDEX (HA_NO_WRITE_DELAYED*2)
|
||||
#define HA_DROP_BEFORE_CREATE (HA_PRIMARY_KEY_IN_READ_INDEX*2)
|
||||
#define HA_NOT_READ_AFTER_KEY (HA_DROP_BEFORE_CREATE*2)
|
||||
#define HA_NOT_DELETE_WITH_CACHE (HA_NOT_READ_AFTER_KEY*2)
|
||||
|
||||
/* Parameters for open() (in register form->filestat) */
|
||||
/* HA_GET_INFO does a implicit HA_ABORT_IF_LOCKED */
|
||||
|
|
|
|||
|
|
@ -595,7 +595,7 @@ void change_byte(byte *,uint,char,char);
|
|||
void unireg_abort(int exit_code);
|
||||
void init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form,
|
||||
SQL_SELECT *select,
|
||||
bool use_record_cache, bool print_errors);
|
||||
int use_record_cache, bool print_errors);
|
||||
void end_read_record(READ_RECORD *info);
|
||||
ha_rows filesort(TABLE **form,struct st_sort_field *sortorder, uint s_length,
|
||||
SQL_SELECT *select, ha_rows special,ha_rows max_rows);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ static int rr_cmp(uchar *a,uchar *b);
|
|||
|
||||
void init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
|
||||
SQL_SELECT *select,
|
||||
bool use_record_cache, bool print_error)
|
||||
int use_record_cache, bool print_error)
|
||||
{
|
||||
IO_CACHE *tempfile;
|
||||
DBUG_ENTER("init_read_record");
|
||||
|
|
@ -97,9 +97,11 @@ void init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
|
|||
info->read_record=rr_sequential;
|
||||
table->file->rnd_init();
|
||||
/* We can use record cache if we don't update dynamic length tables */
|
||||
if (use_record_cache ||
|
||||
if (use_record_cache > 0 ||
|
||||
(int) table->reginfo.lock_type <= (int) TL_READ_HIGH_PRIORITY ||
|
||||
!(table->db_options_in_use & HA_OPTION_PACK_RECORD))
|
||||
!(table->db_options_in_use & HA_OPTION_PACK_RECORD) ||
|
||||
(use_record_cache < 0 &&
|
||||
!(table->file->option_flag() & HA_NOT_DELETE_WITH_CACHE)))
|
||||
VOID(table->file->extra(HA_EXTRA_CACHE)); // Cache reads
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ int mysql_delete(THD *thd,TABLE_LIST *table_list,COND *conds,ha_rows limit,
|
|||
(void) table->file->extra(HA_EXTRA_NO_READCHECK);
|
||||
if (options & OPTION_QUICK)
|
||||
(void) table->file->extra(HA_EXTRA_QUICK);
|
||||
init_read_record(&info,thd,table,select,0,1);
|
||||
init_read_record(&info,thd,table,select,-1,1);
|
||||
ulong deleted=0L;
|
||||
thd->proc_info="updating";
|
||||
while (!(error=info.read_record(&info)) && !thd->killed)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue